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"); }