ngx-unused
Version:
Detect unused classes (components, pipes, services and directives) defined in Angular workspace.
41 lines (40 loc) • 1.1 kB
JavaScript
import minimist from 'minimist';
import { argv, exit } from 'process';
import { getRuntimeConfig, validate } from './cli.js';
import { createProject } from './createProject.js';
import { findUnusedClasses } from './findUsages/index.js';
import { help, invalidTsConfig, printNoFiles, printResults, usage, } from './output.js';
const cliArgs = minimist(argv.slice(2), {
alias: {
decorateOutput: 'd',
project: 'p',
help: 'h',
},
});
if (cliArgs.help || cliArgs.h) {
help();
exit(0);
}
const inputValidation = validate(cliArgs);
if (!inputValidation.tsConfigFilePath) {
invalidTsConfig();
exit(2);
}
if (!inputValidation.valid) {
usage();
exit(2);
}
const { tsConfigFilePath, sourceRoots, decorateOutput } = getRuntimeConfig(cliArgs);
const project = createProject({
tsConfigFilePath,
sourceRoots,
decorateOutput,
});
const sourceFiles = project.getSourceFiles();
if (sourceFiles.length === 0) {
printNoFiles();
exit(0);
}
const results = findUnusedClasses(sourceFiles);
printResults(results);
exit(results.length ? 1 : 0);