UNPKG

@cerbos/core

Version:
43 lines 1.18 kB
import { NotOK } from "./errors/external.js"; import { joinErrorMessage } from "./errors/internal.js"; import { Status } from "./types/external.js"; /** @internal */ export class AbortHandler { signal; constructor(signal) { this.signal = signal; } throwIfAborted() { if (this.signal?.aborted) { throw this.error(); } } onAbort(listener) { this.signal?.addEventListener("abort", () => { listener(this.error()); }, { once: true }); } error() { const reason = this.signal?.reason; return new NotOK(Status.CANCELLED, joinErrorMessage("Aborted", reason), { cause: reason, }); } } const instrumenters = new Set(); /** @internal */ export function addInstrumenter(instrumenter) { instrumenters.add(instrumenter); } /** @internal */ export function removeInstrumenter(instrumenter) { instrumenters.delete(instrumenter); } /** @internal */ export function instrument(transport) { for (const instrumenter of instrumenters) { transport = instrumenter(transport); } return transport; } //# sourceMappingURL=transport.js.map