Skip to content

Commit 45f0565

Browse files
boneskullclaude
andcommitted
fix(cli): use process.exitCode instead of process.exit() in async handlers
process.exit() terminates immediately without letting async operations complete properly. Using process.exitCode allows the event loop to drain naturally. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent e1cfcc6 commit 45f0565

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/cli/builder.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export const createCli = (abortController: AbortController) => {
103103
verbose: values.verbose,
104104
warmup: values.warmup,
105105
});
106-
process.exit(exitCode);
106+
process.exitCode = exitCode;
107107
},
108108
'Run benchmark files',
109109
)
@@ -127,7 +127,7 @@ export const createCli = (abortController: AbortController) => {
127127
until: values.until,
128128
verbose: values.verbose,
129129
});
130-
process.exit(exitCode);
130+
process.exitCode = exitCode;
131131
},
132132
'List recent benchmark runs',
133133
)
@@ -143,7 +143,7 @@ export const createCli = (abortController: AbortController) => {
143143
runId,
144144
verbose: values.verbose,
145145
});
146-
process.exit(exitCode);
146+
process.exitCode = exitCode;
147147
},
148148
'Show detailed results for a specific run',
149149
)
@@ -160,7 +160,7 @@ export const createCli = (abortController: AbortController) => {
160160
runId2,
161161
verbose: values.verbose,
162162
});
163-
process.exit(exitCode);
163+
process.exitCode = exitCode;
164164
},
165165
'Compare two benchmark runs',
166166
)
@@ -181,7 +181,7 @@ export const createCli = (abortController: AbortController) => {
181181
until: values.until,
182182
verbose: values.verbose,
183183
});
184-
process.exit(exitCode);
184+
process.exitCode = exitCode;
185185
},
186186
'Show performance trends over time',
187187
)
@@ -199,7 +199,7 @@ export const createCli = (abortController: AbortController) => {
199199
quiet: values.quiet,
200200
verbose: values.verbose,
201201
});
202-
process.exit(exitCode);
202+
process.exitCode = exitCode;
203203
},
204204
'Clean up old benchmark history',
205205
)
@@ -244,7 +244,7 @@ export const createCli = (abortController: AbortController) => {
244244
runId: values.runId,
245245
verbose: values.verbose,
246246
});
247-
process.exit(exitCode);
247+
process.exitCode = exitCode;
248248
},
249249
'Save a benchmark run as a baseline',
250250
)
@@ -259,7 +259,7 @@ export const createCli = (abortController: AbortController) => {
259259
quiet: Boolean(values.quiet),
260260
verbose: values.verbose,
261261
});
262-
process.exit(exitCode);
262+
process.exitCode = exitCode;
263263
},
264264
'List all saved baselines',
265265
)
@@ -276,7 +276,7 @@ export const createCli = (abortController: AbortController) => {
276276
quiet: Boolean(values.quiet),
277277
verbose: values.verbose,
278278
});
279-
process.exit(exitCode);
279+
process.exitCode = exitCode;
280280
},
281281
'Show baseline details',
282282
)
@@ -292,7 +292,7 @@ export const createCli = (abortController: AbortController) => {
292292
quiet: Boolean(values.quiet),
293293
verbose: values.verbose,
294294
});
295-
process.exit(exitCode);
295+
process.exitCode = exitCode;
296296
},
297297
'Delete a baseline',
298298
)
@@ -308,7 +308,7 @@ export const createCli = (abortController: AbortController) => {
308308
runs: values.runs,
309309
verbose: values.verbose,
310310
});
311-
process.exit(exitCode);
311+
process.exitCode = exitCode;
312312
},
313313
'Analyze history and suggest performance budgets',
314314
),
@@ -379,7 +379,7 @@ export const createCli = (abortController: AbortController) => {
379379
warmup: values.warmup,
380380
};
381381
const exitCode = await testCommand(context, options);
382-
process.exit(exitCode);
382+
process.exitCode = exitCode;
383383
},
384384
'Run test files as benchmarks',
385385
)

0 commit comments

Comments
 (0)