fix(javascript): preserve cancellation during worker preparation

This commit is contained in:
morluto committed 2026-10-11 07:36:39 +08:00
1 parent aa7c5b7b5e
commit 26038912f6
2 files changed
+7 -3

No files matched your search

@@ -356,7 +356,7 @@ export class JavaScriptAnalysisWorker {
break;
}
} catch (cause: unknown) {
const error = this.#failure(cause, file.path, deadline);
const error = this.#failure(cause, file.path, deadline, signal);
this.#lastFailure = error;
// Complete checkpoints remain readable after a child crash or cancellation.
const cleanup = await this.#stop(error);
@@ -632,8 +632,13 @@ export class JavaScriptAnalysisWorker {
cause: unknown,
path: string,
deadline: ProviderStartupDeadline | undefined,
signal: AbortSignal | undefined,
): AnalysisError {
if (deadline?.interruption === "cancelled")
// Ownership preparation is abortable before the worker deadline exists.
if (
deadline?.interruption === "cancelled" ||
(deadline === undefined && signal?.aborted === true)
)
return new AnalysisCancelledError(OPERATION, {
capturedOutput: this.#captured(),
});