forked from projectmoon/tenebrous-dicebot
72 lines
2.4 KiB
JavaScript
72 lines
2.4 KiB
JavaScript
|
"use strict";
|
||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const envinfo_1 = __importDefault(require("envinfo"));
|
||
|
const DEFAULT_DETAILS = {
|
||
|
Binaries: ['Node', 'Yarn', 'npm'],
|
||
|
Browsers: [
|
||
|
'Brave Browser',
|
||
|
'Chrome',
|
||
|
'Chrome Canary',
|
||
|
'Edge',
|
||
|
'Firefox',
|
||
|
'Firefox Developer Edition',
|
||
|
'Firefox Nightly',
|
||
|
'Internet Explorer',
|
||
|
'Safari',
|
||
|
'Safari Technology Preview',
|
||
|
],
|
||
|
Monorepos: ['Yarn Workspaces', 'Lerna'],
|
||
|
System: ['OS', 'CPU', 'Memory'],
|
||
|
npmGlobalPackages: ['webpack', 'webpack-cli'],
|
||
|
npmPackages: '*webpack*',
|
||
|
};
|
||
|
class InfoCommand {
|
||
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
||
|
async apply(cli) {
|
||
|
const { logger } = cli;
|
||
|
await cli.makeCommand({
|
||
|
name: 'info',
|
||
|
alias: 'i',
|
||
|
description: 'Outputs information about your system.',
|
||
|
usage: '[options]',
|
||
|
pkg: '@webpack-cli/info',
|
||
|
}, [
|
||
|
{
|
||
|
name: 'output',
|
||
|
configs: [
|
||
|
{
|
||
|
type: 'string',
|
||
|
},
|
||
|
],
|
||
|
description: 'To get the output in a specified format ( accept json or markdown )',
|
||
|
},
|
||
|
], async (options) => {
|
||
|
let { output } = options;
|
||
|
const envinfoConfig = {};
|
||
|
if (output) {
|
||
|
// Remove quotes if exist
|
||
|
output = output.replace(/['"]+/g, '');
|
||
|
switch (output) {
|
||
|
case 'markdown':
|
||
|
envinfoConfig['markdown'] = true;
|
||
|
break;
|
||
|
case 'json':
|
||
|
envinfoConfig['json'] = true;
|
||
|
break;
|
||
|
default:
|
||
|
logger.error(`'${output}' is not a valid value for output`);
|
||
|
process.exit(2);
|
||
|
}
|
||
|
}
|
||
|
let info = await envinfo_1.default.run(DEFAULT_DETAILS, envinfoConfig);
|
||
|
info = info.replace(/npmPackages/g, 'Packages');
|
||
|
info = info.replace(/npmGlobalPackages/g, 'Global Packages');
|
||
|
logger.raw(info);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
exports.default = InfoCommand;
|