knip
Version:
Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects
31 lines (30 loc) • 1.07 kB
JavaScript
import { toConfig, toProductionEntry } from "../../util/input.js";
import { hasDependency } from "../../util/plugin.js";
import { collectPropertyValues } from "../../typescript/ast-helpers.js";
const title = 'Stencil';
const enablers = ['@stencil/core'];
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
const config = ['stencil.config.{ts,js}'];
const production = ['src/**/*.tsx'];
const resolveFromAST = program => {
const inputs = [];
const srcDirs = collectPropertyValues(program, 'srcDir');
const srcDir = srcDirs.size > 0 ? [...srcDirs][0] : 'src';
inputs.push(toProductionEntry(`${srcDir}/**/*.tsx`));
for (const script of collectPropertyValues(program, 'globalScript')) {
inputs.push(toProductionEntry(script));
}
for (const tsconfig of collectPropertyValues(program, 'tsconfig')) {
inputs.push(toConfig('typescript', tsconfig));
}
return inputs;
};
const plugin = {
title,
enablers,
isEnabled,
config,
production,
resolveFromAST,
};
export default plugin;