fix(lint): skip heavy-check lock for explicit oxlint files

This commit is contained in:
Vincent Koc
2026-04-12 05:32:16 +01:00
parent 97aa6e0815
commit 95e7af3213
3 changed files with 73 additions and 3 deletions

View File

@@ -84,6 +84,36 @@ export function applyLocalOxlintPolicy(args, env, hostResources) {
return { env: nextEnv, args: nextArgs };
}
export function shouldAcquireLocalHeavyCheckLockForOxlint(
args,
{ cwd = process.cwd(), env = process.env } = {},
) {
if (env.OPENCLAW_OXLINT_FORCE_LOCK === "1") {
return true;
}
const separatorIndex = args.indexOf("--");
const candidateArgs = (() => {
if (separatorIndex !== -1) {
return args.slice(separatorIndex + 1);
}
const firstFlagIndex = args.findIndex((arg) => arg.startsWith("-"));
return firstFlagIndex === -1 ? args : args.slice(0, firstFlagIndex);
})();
const explicitTargets = candidateArgs.filter((arg) => arg.length > 0 && !arg.startsWith("-"));
if (explicitTargets.length === 0) {
return true;
}
return !explicitTargets.every((target) => {
try {
return fs.statSync(path.resolve(cwd, target)).isFile();
} catch {
return false;
}
});
}
export function shouldThrottleLocalHeavyChecks(env, hostResources) {
if (!isLocalCheckEnabled(env)) {
return false;