(argv, stdOut, opts: RunNextCommandDevOptions = {})
| 221 | } |
| 222 | |
| 223 | export function runBlitzCommandDev(argv, stdOut, opts: RunNextCommandDevOptions = {}) { |
| 224 | const nextnextbin = getCommandBin("blitz", opts.cwd) |
| 225 | const blitzBin = path.join(nextnextbin, "dist/index.cjs") |
| 226 | |
| 227 | const cwd = opts.cwd |
| 228 | const env = { |
| 229 | ...process.env, |
| 230 | NODE_ENV: undefined, |
| 231 | __NEXT_TEST_MODE: "true", |
| 232 | ...opts.env, |
| 233 | } |
| 234 | |
| 235 | return new Promise<void>((resolve, reject) => { |
| 236 | console.log(`Running command "blitz ${argv.join(" ")}"`) |
| 237 | const instance = spawn("node", [blitzBin, ...argv], { |
| 238 | cwd, |
| 239 | env, |
| 240 | } as {}) |
| 241 | let didResolve = false |
| 242 | |
| 243 | function handleStdout(data) { |
| 244 | const message = data.toString() |
| 245 | const bootupMarkers = { |
| 246 | dev: /Ready/i, |
| 247 | start: /Ready/i, |
| 248 | } |
| 249 | if ( |
| 250 | (opts.bootupMarker && opts.bootupMarker.test(message)) || |
| 251 | bootupMarkers[opts.nextStart || stdOut ? "start" : "dev"].test(message) |
| 252 | ) { |
| 253 | if (!didResolve) { |
| 254 | didResolve = true |
| 255 | resolve(stdOut ? message : instance) |
| 256 | } |
| 257 | } |
| 258 | |
| 259 | if (typeof opts.onStdout === "function") { |
| 260 | opts.onStdout(message) |
| 261 | } |
| 262 | |
| 263 | if (opts.stdout !== false) { |
| 264 | process.stdout.write(message) |
| 265 | } |
| 266 | } |
| 267 | |
| 268 | function handleStderr(data) { |
| 269 | const message = data.toString() |
| 270 | if (typeof opts.onStderr === "function") { |
| 271 | opts.onStderr(message) |
| 272 | } |
| 273 | |
| 274 | if (opts.stderr !== false) { |
| 275 | process.stderr.write(message) |
| 276 | } |
| 277 | } |
| 278 | |
| 279 | instance.stdout?.on("data", handleStdout) |
| 280 | instance.stderr?.on("data", handleStderr) |
no test coverage detected