forked from farhoodlabs/paperclip
Ignore test-only paths in dev restart tracking
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
const testDirectoryNames = new Set([
|
||||
"__tests__",
|
||||
"_tests",
|
||||
"test",
|
||||
"tests",
|
||||
]);
|
||||
|
||||
const ignoredTestConfigBasenames = new Set([
|
||||
"jest.config.cjs",
|
||||
"jest.config.js",
|
||||
"jest.config.mjs",
|
||||
"jest.config.ts",
|
||||
"playwright.config.ts",
|
||||
"vitest.config.ts",
|
||||
]);
|
||||
|
||||
export function shouldTrackDevServerPath(relativePath) {
|
||||
const normalizedPath = String(relativePath).replaceAll("\\", "/").replace(/^\.\/+/, "");
|
||||
if (normalizedPath.length === 0) return false;
|
||||
|
||||
const segments = normalizedPath.split("/");
|
||||
const basename = segments.at(-1) ?? normalizedPath;
|
||||
|
||||
if (ignoredTestConfigBasenames.has(basename)) {
|
||||
return false;
|
||||
}
|
||||
if (segments.some((segment) => testDirectoryNames.has(segment))) {
|
||||
return false;
|
||||
}
|
||||
if (/\.(test|spec)\.[^/]+$/i.test(basename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import path from "node:path";
|
||||
import { createInterface } from "node:readline/promises";
|
||||
import { stdin, stdout } from "node:process";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { shouldTrackDevServerPath } from "./dev-runner-paths.mjs";
|
||||
|
||||
const mode = process.argv[2] === "watch" ? "watch" : "dev";
|
||||
const cliArgs = process.argv.slice(3);
|
||||
@@ -164,6 +165,7 @@ function readSignature(absolutePath) {
|
||||
function addFileToSnapshot(snapshot, absolutePath) {
|
||||
const relativePath = toRelativePath(absolutePath);
|
||||
if (ignoredRelativePaths.has(relativePath)) return;
|
||||
if (!shouldTrackDevServerPath(relativePath)) return;
|
||||
snapshot.set(relativePath, readSignature(absolutePath));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user