Spaces:
Paused
Paused
| 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); | |
| }); | |