refactor(reference): share resource failure projection

This commit is contained in:
morluto committed 2026-10-22 10:19:28 +08:00
1 parent 81ab0ddc95
commit 34fd7bdf7d
3 files changed
+16 -14

No files matched your search

@@ -1,3 +1,4 @@
import type { ArtifactReaderFailure } from "../artifacts/ArtifactReader.js";
import type {
ReferenceSourceEntry,
ReferenceSourceFailureCode,
@@ -16,6 +17,17 @@ export const failure = (
export const cancelled = (): ReferenceSourceReaderError =>
failure("cancelled", "Reference source traversal cancelled");
/** Project resource failures into the reference-source error contract. */
export const referenceSourceResourceFailure = (
cause: ArtifactReaderFailure,
): ReferenceSourceReaderError => ({
tag: "reference-source-reader",
code: cause.reason === "cancelled" ? "cancelled" : "io",
message: cause.message,
...(cause.cleanup === undefined ? {} : { cleanup: cause.cleanup }),
cause,
});
export const safeSize = (size: bigint): number | undefined => {
const value = Number(size);
return Number.isSafeInteger(value) && value >= 0 ? value : undefined;