knip
Version:
Find unused files, dependencies and exports in your TypeScript and JavaScript projects
194 lines (193 loc) • 3.62 kB
JavaScript
export const ROOT_WORKSPACE_NAME = '.';
export const IMPORT_STAR = '*';
export const ANONYMOUS = '__anonymous';
export const KNIP_CONFIG_LOCATIONS = [
'knip.json',
'knip.jsonc',
'.knip.json',
'.knip.jsonc',
'knip.ts',
'knip.js',
'knip.config.ts',
'knip.config.js',
];
export const DEFAULT_EXTENSIONS = ['.js', '.mjs', '.cjs', '.jsx', '.ts', '.tsx', '.mts', '.cts'];
export const GLOBAL_IGNORE_PATTERNS = ['**/node_modules/**', '.yarn'];
export const PUBLIC_TAG = '@public';
export const INTERNAL_TAG = '@internal';
export const BETA_TAG = '@beta';
export const ALIAS_TAG = '@alias';
export const DT_SCOPE = '@types';
export const PROTOCOL_VIRTUAL = 'virtual:';
export const IGNORED_GLOBAL_BINARIES = new Set([
'amplify',
'aws',
'base64',
'basename',
'bash',
'bun',
'bundle',
'bunx',
'cat',
'cd',
'chown',
'chmod',
'cksum',
'comm',
'command',
'corepack',
'cp',
'curl',
'cut',
'deno',
'df',
'dir',
'dirname',
'docker',
'echo',
'env',
'exec',
'exit',
'expand',
'expr',
'factor',
'false',
'find',
'gem',
'git',
'grep',
'groups',
'gzip',
'head',
'id',
'join',
'kill',
'ln',
'logname',
'ls',
'md5sum',
'mkdir',
'mknod',
'mv',
'nice',
'nl',
'nohup',
'node',
'npm',
'nproc',
'npx',
'paste',
'pnpm',
'pnpx',
'pr',
'printenv',
'pwd',
'rm',
'rmdir',
'rsync',
'scp',
'seq',
'set',
'sha1sum',
'sha512sum',
'sh',
'shred',
'shuf',
'sort',
'split',
'ssh',
'stat',
'stty',
'sudo',
'sync',
'tac',
'tee',
'test',
'timeout',
'touch',
'tr',
'true',
'tsort',
'tty',
'uname',
'unexpand',
'uniq',
'wc',
'who',
'whoami',
'xargs',
'xcodebuild',
'xvfb-run',
'yarn',
'yes',
'zip',
]);
export const IGNORED_DEPENDENCIES = new Set(['knip', 'typescript']);
export const IGNORED_RUNTIME_DEPENDENCIES = new Set(['node', 'bun', 'deno']);
export const FOREIGN_FILE_EXTENSIONS = new Set([
'.avif',
'.css',
'.eot',
'.gif',
'.html',
'.ico',
'.jpeg',
'.jpg',
'.less',
'.mp3',
'.png',
'.sass',
'.scss',
'.sh',
'.svg',
'.ttf',
'.webp',
'.woff',
'.woff2',
'.yaml',
'.yml',
]);
export const IGNORE_DEFINITELY_TYPED = new Set([
'node',
'bun',
'jest',
]);
export const ISSUE_TYPES = [
'files',
'dependencies',
'devDependencies',
'optionalPeerDependencies',
'unlisted',
'binaries',
'unresolved',
'exports',
'nsExports',
'types',
'nsTypes',
'enumMembers',
'classMembers',
'duplicates',
];
export const ISSUE_TYPE_TITLE = {
files: 'Unused files',
_files: 'Unused files',
dependencies: 'Unused dependencies',
devDependencies: 'Unused devDependencies',
optionalPeerDependencies: 'Referenced optional peerDependencies',
unlisted: 'Unlisted dependencies',
binaries: 'Unlisted binaries',
unresolved: 'Unresolved imports',
exports: 'Unused exports',
nsExports: 'Exports in used namespace',
types: 'Unused exported types',
nsTypes: 'Exported types in used namespace',
enumMembers: 'Unused exported enum members',
classMembers: 'Unused exported class members',
duplicates: 'Duplicate exports',
};
export const FIX_FLAGS = {
NONE: 0,
OBJECT_BINDING: 1 << 0,
EMPTY_DECLARATION: 1 << 1,
WITH_NEWLINE: 1 << 2,
};