mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-16 20:02:45 +03:00
Closes a real process-killer: the direct-response start timeout could fire after the fetch promise had already settled, and aborting at that point delivered the abort reason to a promise nobody was awaiting — Node promotes that to an `unhandledRejection` → `uncaughtException` and the process dies (#12861). The timer is now a no-op once the attempt has settled, and the same guard is extended to combo hedge cancels and upstream fetch failures. Validated as a combined board first (this PR merged with the 11 siblings of the same batch on the release tip): eslint on every changed file with the suppressions file, typecheck:core, check:open-sse-typecheck, complexity, cognitive-complexity, changelog-integrity, i18n new-key coverage, docs-sync, migration-numbering, provider-consistency and a duplicate-identifier audit all green, plus 275 passing / 0 failing focused node:test cases across the 28 test files the batch touches. Then re-validated alone on the fresh tip before this merge: conflicts re-resolved, file sizes rebaselined for this PR's own growth, eslint and this PR's focused tests re-run. Thanks @HouMinXi!
19 lines
561 B
JavaScript
19 lines
561 B
JavaScript
"use strict";
|
|
|
|
/**
|
|
* Re-export of the shared client-abort guard so the Node-only dev server
|
|
* (`run-next.mjs`) keeps importing from its original relative path. The real
|
|
* implementation lives in `src/shared/utils/httpClientAbortGuard.mjs` (importable
|
|
* from both `.mjs` and the TypeScript servers under `src/`, tsconfig allowJs).
|
|
*
|
|
* @module
|
|
*/
|
|
|
|
export {
|
|
isClientAbortError,
|
|
isRecoverableUpstreamTimeoutError,
|
|
shouldSwallowUncaught,
|
|
attachRequestStreamGuards,
|
|
installProcessCrashGuard,
|
|
} from "../../src/shared/utils/httpClientAbortGuard.mjs";
|