Files
loc-via-git/src/file-filter.ts
T
luna 91c0ed7332
ci / test (push) Successful in 9s
Harden scans and add LOC comparison endpoint (#1)
Co-authored-by: luna <clawy@reversed.dev>
Co-committed-by: luna <clawy@reversed.dev>
2026-07-21 19:33:08 +02:00

69 lines
1.7 KiB
TypeScript

import path from "node:path";
const ignoredFileNames = new Set([
".editorconfig",
".gitattributes",
".gitignore",
".gitmodules",
".npmrc",
".nvmrc",
".prettierignore",
".prettierrc",
".prettierrc.json",
".yarnrc",
".yarnrc.yml",
"bun.lock",
"bun.lockb",
"cargo.lock",
"composer.json",
"composer.lock",
"deno.json",
"deno.lock",
"docker-compose.yaml",
"docker-compose.yml",
"eslint.config.js",
"eslint.config.mjs",
"global.json",
"go.mod",
"go.sum",
"gradle.properties",
"makefile",
"package-lock.json",
"package.json",
"pnpm-lock.yaml",
"poetry.lock",
"pom.xml",
"requirements.txt",
"rollup.config.js",
"rollup.config.mjs",
"settings.gradle",
"settings.gradle.kts",
"tsconfig.base.json",
"tsconfig.build.json",
"tsconfig.json",
"tsconfig.node.json",
"turbo.json",
"vite.config.js",
"vite.config.mjs",
"vite.config.ts",
"webpack.config.js",
"webpack.config.ts",
"yarn.lock"
]);
const ignoredDirectoryNames = new Set([
".angular", ".cache", ".next", ".nuxt", ".output", ".parcel-cache", ".svelte-kit",
".terraform", ".venv", "bower_components", "build", "coverage", "dist", "node_modules",
"out", "pods", "target", "vendor"
]);
export function shouldIgnoreCountFile(filePath: string): boolean {
const fileName = path.basename(filePath).toLowerCase();
const directories = path.dirname(filePath).toLowerCase().split(path.sep);
return ignoredFileNames.has(fileName)
|| directories.some((directory) => ignoredDirectoryNames.has(directory))
|| /\.(generated|designer|g|pb)\.[^.]+$/.test(fileName)
|| /\.min\.(css|js|mjs|cjs)$/.test(fileName)
|| fileName.endsWith(".snap");
}