knip
Version:
Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects
47 lines (46 loc) • 1.53 kB
JavaScript
import { toDependency, toEntry, toProductionEntry } from '../../util/input.js';
import { hasDependency } from '../../util/plugin.js';
import { getSrcDir } from './resolveFromAST.js';
const title = 'Astro';
const enablers = ['astro'];
const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
export const config = ['astro.config.{js,cjs,mjs,ts,mts}'];
const entry = ['src/content/config.ts', 'src/content.config.ts'];
const production = [
'src/pages/**/*.{astro,mdx,js,ts}',
'src/content/**/*.mdx',
'src/middleware.{js,ts}',
'src/actions/index.{js,ts}',
];
const resolveFromAST = sourceFile => {
const srcDir = getSrcDir(sourceFile);
return [
...[`${srcDir}/content/config.ts`, `${srcDir}/content.config.ts`].map(path => toEntry(path)),
...[
`${srcDir}/pages/**/*.{astro,mdx,js,ts}`,
`${srcDir}/content/**/*.mdx`,
`${srcDir}/middleware.{js,ts}`,
`${srcDir}/actions/index.{js,ts}`,
].map(path => toProductionEntry(path)),
];
};
const resolve = options => {
const { manifest, isProduction } = options;
const inputs = [];
if (!isProduction &&
manifest.scripts &&
Object.values(manifest.scripts).some(script => /(?<=^|\s)astro(\s|\s.+\s)check(?=\s|$)/.test(script))) {
inputs.push(toDependency('@astrojs/check'));
}
return inputs;
};
export default {
title,
enablers,
isEnabled,
config,
entry,
production,
resolveFromAST,
resolve,
};