Something went wrong. Try again.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930import type { Key } from "./index.js";
const codes = [ "storage", "transport", "validation", "record", "blob", "discovery", "conflict", "resolution", "unconfirmed-write", "stale", "unsupported", "collection-not-loaded", "protocol", "binding", "initialization", "closed", "cancelled",] as const;
export type FolioErrorCode = typeof codes[number];
/** Rust and host failures share these classifications at the JavaScript boundary. */export interface FolioError extends Error { readonly name: "FolioError"; readonly code: FolioErrorCode; readonly key?: Key;}
export function isFolioError(value: unknown): value is FolioError { return value instanceof Error && value.name === "FolioError" && "code" in value && codes.some((code) => code === value.code);}
export function failure(code: FolioErrorCode, cause: unknown): FolioError { if (code === "binding" && isFolioError(cause)) return cause; return Object.assign(new Error(cause instanceof Error ? cause.message : String(cause), { cause }), { name: "FolioError" as const, code, });}