mirror of
https://github.com/paperclipai/paperclip
synced 2026-05-08 16:12:20 +02:00
The dev-watch script was importing tsx via the internal path 'tsx/dist/cli.mjs', which is an undocumented implementation detail that broke when tsx updated its internal structure. Switched to the stable public export 'tsx/cli' which is the officially supported entry point and won't break across versions.
34 lines
931 B
TypeScript
34 lines
931 B
TypeScript
import { spawn } from "node:child_process";
|
|
import { createRequire } from "node:module";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { resolveServerDevWatchIgnorePaths } from "../src/dev-watch-ignore.ts";
|
|
|
|
const require = createRequire(import.meta.url);
|
|
const tsxCliPath = require.resolve("tsx/cli");
|
|
const serverRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
const ignoreArgs = resolveServerDevWatchIgnorePaths(serverRoot).flatMap((ignorePath) => ["--exclude", ignorePath]);
|
|
|
|
const child = spawn(
|
|
process.execPath,
|
|
[tsxCliPath, "watch", ...ignoreArgs, "src/index.ts"],
|
|
{
|
|
cwd: serverRoot,
|
|
env: process.env,
|
|
stdio: "inherit",
|
|
},
|
|
);
|
|
|
|
child.on("exit", (code, signal) => {
|
|
if (signal) {
|
|
process.kill(process.pid, signal);
|
|
return;
|
|
}
|
|
process.exit(code ?? 0);
|
|
});
|
|
|
|
child.on("error", (error) => {
|
|
console.error(error);
|
|
process.exit(1);
|
|
});
|