56 lines
1.4 KiB
JavaScript
Executable file
56 lines
1.4 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
'use strict';
|
|
|
|
const path = require('path');
|
|
const commander = require('commander');
|
|
const chalk = require('chalk');
|
|
const { version } = require('./package.json');
|
|
const fusv = require('.');
|
|
|
|
commander
|
|
.usage('[options] <folders...>')
|
|
.version(version, '-v, --version')
|
|
.option('-i, --ignore <ignoredVars>', 'ignore variables, comma separated')
|
|
.parse(process.argv);
|
|
|
|
function main(args) {
|
|
const ignore = commander.ignore ? commander.ignore.split(',') : [];
|
|
|
|
console.log('Looking for unused variables');
|
|
|
|
let unusedList = [];
|
|
|
|
args.forEach(arg => {
|
|
const dir = path.resolve(arg);
|
|
|
|
console.log(`Finding unused variables in "${chalk.cyan.bold(dir)}"...`);
|
|
|
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
const unusedVars = fusv.find(dir, { ignore });
|
|
|
|
console.log(`${chalk.cyan.bold(unusedVars.total)} total variables.`);
|
|
|
|
unusedVars.unused.forEach(unusedVar => {
|
|
console.log(`Variable ${chalk.bold(unusedVar)} is not being used!`);
|
|
});
|
|
|
|
unusedList = unusedList.concat(unusedVars.unused);
|
|
});
|
|
|
|
if (unusedList.length === 0) {
|
|
console.log('No unused variables found!');
|
|
process.exit(0);
|
|
}
|
|
|
|
process.exit(1);
|
|
}
|
|
|
|
const args = commander.args.filter(arg => typeof arg === 'string');
|
|
|
|
if (args.length > 0) {
|
|
main(args);
|
|
} else {
|
|
commander.help();
|
|
}
|