UNPKG

knip

Version:

Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects

51 lines (50 loc) 1.73 kB
import { toProductionEntry } from '../../util/input.js'; import { hasDependency } from '../../util/plugin.js'; const title = 'Rsbuild'; const enablers = ['@rsbuild/core']; const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers); const config = ['rsbuild*.config.{mjs,ts,js,cjs,mts,cts}']; const resolveConfig = async (config) => { const entries = new Set(); const checkSource = (source) => { if (source?.entry) { for (const entry of Object.values(source.entry)) { if (typeof entry === 'string') entries.add(entry); else if (Array.isArray(entry)) for (const e of entry) entries.add(e); else { if (typeof entry.import === 'string') entries.add(entry.import); else if (Array.isArray(entry.import)) for (const e of entry.import) entries.add(e); } } } if (source?.preEntry) { const entry = source.preEntry; if (typeof entry === 'string') entries.add(entry); else if (Array.isArray(entry)) for (const e of entry) entries.add(e); } }; checkSource(config.source); if (config.environments) { for (const environment of Object.values(config.environments)) { checkSource(environment.source); } } return Array.from(entries).map(input => toProductionEntry(input)); }; const plugin = { title, enablers, isEnabled, config, resolveConfig, }; export default plugin;