UNPKG

knip

Version:

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

53 lines (52 loc) 1.48 kB
import { isDirectory } from '../../util/fs.js'; import { toEntry } from '../../util/input.js'; import { join } from '../../util/path.js'; import { hasDependency } from '../../util/plugin.js'; const title = 'Prisma'; const enablers = ['prisma', /^@prisma\/.*/]; const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers); const entry = ['prisma/schema.prisma', 'schema.prisma']; const config = [ 'prisma.config.{js,ts,mjs,cjs,mts,cts}', '.config/prisma.{js,ts,mjs,cjs,mts,cts}', 'package.json', ]; const resolveSchema = (path, cwd) => { if (!isDirectory(join(cwd, path))) { return toEntry(path); } return toEntry(join(path, '**/*.prisma')); }; const resolveConfig = async (config, options) => { const inputs = []; if (config.seed) { inputs.push(...options.getInputsFromScripts(config.seed)); } else if (config.migrations?.seed) { inputs.push(...options.getInputsFromScripts(config.migrations.seed)); } if (config.schema) { inputs.push(resolveSchema(config.schema, options.cwd)); } return inputs; }; const args = { config: true, resolveInputs: (parsed, { cwd }) => { const inputs = []; if (parsed['schema']) { inputs.push(resolveSchema(parsed['schema'], cwd)); } return inputs; }, }; const plugin = { title, enablers, isEnabled, entry, config, args, resolveConfig, }; export default plugin;