Files
orca/config/scripts/localization/extraction-policy/localization-extraction-change-scope.mjs
Neil 6bb2e13c35 refactor(tooling): organize remaining scripts by domain owners (#38407)
* refactor(tooling): group remaining scripts by concrete domain owners

* fix(tooling): preserve relocated launcher resource roots
2026-11-05 00:29:16 -08:00

51 lines
1.9 KiB
JavaScript

import { readFileSync } from 'node:fs'
import { pathToFileURL } from 'node:url'
const TOOLCHAIN_FILES = new Set([
'package.json',
'pnpm-lock.yaml',
'pnpm-workspace.yaml',
'tsconfig.json',
'.npmrc',
'config/pnpmfile.cjs',
'.github/workflows/pr.yml'
])
function isIgnoredTestSource(path) {
if (!/\.(?:js|jsx|ts|tsx|mts|cts)$/.test(path)) {
return false
}
const segments = path.split('/')
const filename = segments.at(-1) ?? ''
return (
filename.includes('.test.') ||
filename.includes('.spec.') ||
segments.slice(0, -1).some((segment) => segment === '__tests__' || segment === '__snapshots__')
)
}
export function affectsLocalizationExtraction(paths) {
return paths.some(
(path) =>
TOOLCHAIN_FILES.has(path) ||
// Keep catalogs and future source inputs; skip only configured test exclusions.
(path.startsWith('src/') && !isIgnoredTestSource(path)) ||
path.startsWith('config/i18next.') ||
path.startsWith('config/tsconfig') ||
path.startsWith('config/patches/') ||
path.startsWith('config/scripts/localization-') ||
path.startsWith('config/scripts/localization/source-extraction/localization-') ||
path.startsWith('config/scripts/localization/catalog-validation/localization-') ||
path.startsWith('config/scripts/localization/extraction-policy/localization-') ||
path.startsWith('config/scripts/verify-localization-') ||
path.startsWith('config/scripts/localization/catalog-validation/verify-localization-') ||
path.startsWith('config/scripts/localization/source-extraction/verify-localization-') ||
path.startsWith('.github/actions/install-node-dependencies/')
)
}
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
const changed = readFileSync(process.argv[2], 'utf8').split('\0').filter(Boolean)
process.stdout.write(`${affectsLocalizationExtraction(changed)}\n`)
}