refactor: centralize test path containment checks

This commit is contained in:
Peter Steinberger committed 2026-01-09 19:15:44 +00:00
1 parent f0a909f6dd
commit 837cec64af
3 files changed
+40 -44

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
import path from "node:path";
export function isPathWithinBase(base: string, target: string): boolean {
if (process.platform === "win32") {
const normalizedBase = path.win32.normalize(path.win32.resolve(base));
const normalizedTarget = path.win32.normalize(path.win32.resolve(target));
const rel = path.win32.relative(
normalizedBase.toLowerCase(),
normalizedTarget.toLowerCase(),
);
return rel === "" || (!rel.startsWith("..") && !path.win32.isAbsolute(rel));
}
const normalizedBase = path.resolve(base);
const normalizedTarget = path.resolve(target);
const rel = path.relative(normalizedBase, normalizedTarget);
return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
}