Make dep-update nicer

This commit is contained in:
Dragon Fire
2024-05-06 01:14:52 -04:00
parent 94a8bf2ad5
commit 29ae084f19
+16 -8
View File
@@ -1,7 +1,6 @@
const Command = require('../../framework/Command'); const Command = require('../../framework/Command');
const request = require('node-superfetch'); const request = require('node-superfetch');
const semver = require('semver'); const semver = require('semver');
const { stripIndents } = require('common-tags');
const { reactIfAble } = require('../../util/Util'); const { reactIfAble } = require('../../util/Util');
const { dependencies, devDependencies, optionalDependencies } = require('../../package'); const { dependencies, devDependencies, optionalDependencies } = require('../../package');
const { LOADING_EMOJI_ID, SUCCESS_EMOJI_ID } = process.env; const { LOADING_EMOJI_ID, SUCCESS_EMOJI_ID } = process.env;
@@ -30,6 +29,7 @@ module.exports = class DependencyUpdateCommand extends Command {
async run(msg) { async run(msg) {
await reactIfAble(msg, msg.author, LOADING_EMOJI_ID, '💬'); await reactIfAble(msg, msg.author, LOADING_EMOJI_ID, '💬');
const needUpdate = []; const needUpdate = [];
const optionalNeedsUpdate = [];
for (const [dep, ver] of Object.entries(dependencies)) { for (const [dep, ver] of Object.entries(dependencies)) {
const update = await this.parseUpdate(dep, ver); const update = await this.parseUpdate(dep, ver);
if (!update) continue; if (!update) continue;
@@ -38,23 +38,31 @@ module.exports = class DependencyUpdateCommand extends Command {
for (const [dep, ver] of Object.entries(devDependencies)) { for (const [dep, ver] of Object.entries(devDependencies)) {
const update = await this.parseUpdate(dep, ver); const update = await this.parseUpdate(dep, ver);
if (!update) continue; if (!update) continue;
needUpdate.push(update); optionalNeedsUpdate.push(update);
} }
for (const [dep, ver] of Object.entries(optionalDependencies)) { for (const [dep, ver] of Object.entries(optionalDependencies)) {
const update = await this.parseUpdate(dep, ver); const update = await this.parseUpdate(dep, ver);
if (!update) continue; if (!update) continue;
needUpdate.push(update); optionalNeedsUpdate.push(update);
} }
if (!needUpdate.length) return msg.say('All packages are up to date.'); if (!needUpdate.length && !optionalNeedsUpdate.length) return msg.say('👍 All packages are up to date.');
const updatesList = needUpdate.map(pkg => { const updatesList = needUpdate.map(pkg => {
const breaking = pkg.breaking ? ' ⚠️' : ''; const breaking = pkg.breaking ? ' ⚠️' : '';
return `${pkg.name} (${pkg.oldVer} -> ${pkg.newVer})${breaking}`; return `${pkg.name} (${pkg.oldVer} -> ${pkg.newVer})${breaking}`;
}); });
const optionalList = optionalNeedsUpdate.map(pkg => {
const breaking = pkg.breaking ? ' ⚠️' : '';
return `${pkg.name} (${pkg.oldVer} -> ${pkg.newVer})${breaking}`;
});
await reactIfAble(msg, msg.author, SUCCESS_EMOJI_ID, '✅'); await reactIfAble(msg, msg.author, SUCCESS_EMOJI_ID, '✅');
return msg.say(stripIndents` let result = '';
__**Package Updates Available:**__ if (needUpdate.length) {
${updatesList.join('\n')} result += `__**Package Updates Available:**__\n${updatesList.join('\n')}`;
`); }
if (optionalNeedsUpdate.length) {
result += `\n\n__**Optional/Dev Updates Available:**__\n${optionalList.join('\n')}`;
}
return msg.say(result.trim());
} }
async fetchVersion(dependency) { async fetchVersion(dependency) {