knip
Version:
Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects
26 lines (25 loc) • 1.03 kB
JavaScript
import { parseArgs } from 'node:util';
import { Plugins } from './plugins/index.js';
import { timerify } from './util/Performance.js';
const PMap = Plugins;
const { values } = parseArgs({ strict: false, options: { performance: { type: 'boolean' } } });
const isEnabled = !!values.performance;
const timerifyMethods = ['resolve', 'resolveConfig', 'resolveAST'];
const PluginEntries = Object.entries(PMap);
if (isEnabled) {
for (const [, plugin] of PluginEntries) {
for (const method of timerifyMethods) {
if (method in plugin)
plugin[method] = timerify(plugin[method], `${method} (${plugin.title})`);
}
}
}
const pluginArgsMap = new Map(PluginEntries.flatMap(([pluginName, plugin]) => {
if (!plugin.args)
return [];
const item = [pluginName, plugin.args];
if (Array.isArray(plugin.args?.binaries))
return plugin.args.binaries.map(bin => [bin, item]);
return [[pluginName, item]];
}));
export { PMap as Plugins, PluginEntries, pluginArgsMap };