knip
Version:
Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects
22 lines (21 loc) • 1.25 kB
JavaScript
import parseArgs from 'minimist';
import { toBinary, toDependency } from "../../util/input.js";
import { stripVersionFromSpecifier } from "../../util/modules.js";
import { isInternal } from "../../util/path.js";
import { argsFrom } from "../util.js";
export const resolveX = (args, options) => {
const { fromArgs } = options;
const parsed = parseArgs(args, { boolean: ['bun'] });
const packageSpecifier = parsed._[0];
const specifier = packageSpecifier ? stripVersionFromSpecifier(packageSpecifier) : '';
const packages = parsed.package && !parsed.yes ? [parsed.package].flat().map(stripVersionFromSpecifier) : [];
const command = parsed['shell-mode'] ? fromArgs([parsed['shell-mode']]) : [];
const restArgs = argsFrom(args, packageSpecifier);
const isBinary = specifier && !packageSpecifier.includes('@') && !isInternal(specifier);
const dependency = isBinary ? toBinary(specifier, { optional: true }) : toDependency(specifier, { optional: true });
const specifiers = specifier ? [dependency] : [];
return [...specifiers, ...packages.map(id => toDependency(id)), ...command, ...fromArgs(restArgs).slice(1)];
};
export const resolve = (_binary, args, options) => {
return resolveX(args, options);
};