mirror of
https://github.com/morluto/rea.git
synced 2026-11-12 01:41:21 +00:00
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import type { ResidualUnknownGraphConstraint } from "./residualUnknownGraphError.js";
|
|
import { AnalysisError } from "./analysisErrorBase.js";
|
|
|
|
/** Residual-unknown mutation failed a lifecycle, reference, or CAS invariant. */
|
|
export class UnknownRegistryError extends AnalysisError {
|
|
readonly _tag = "UnknownRegistryError";
|
|
|
|
readonly constraint: ResidualUnknownGraphConstraint | undefined;
|
|
readonly reason:
|
|
| "not-found"
|
|
| "already-exists"
|
|
| "revision-conflict"
|
|
| "invalid-transition"
|
|
| "integrity"
|
|
| "limit"
|
|
| "constraint";
|
|
|
|
constructor(
|
|
failure:
|
|
| "not-found"
|
|
| "already-exists"
|
|
| "revision-conflict"
|
|
| "invalid-transition"
|
|
| "integrity"
|
|
| "limit"
|
|
| ResidualUnknownGraphConstraint,
|
|
options?: ErrorOptions,
|
|
) {
|
|
const reason =
|
|
typeof failure === "string"
|
|
? failure
|
|
: failure.kind === "history_gap" || failure.kind === "revision_chain"
|
|
? "integrity"
|
|
: "constraint";
|
|
super(`Residual unknown registry mutation failed: ${reason}`, options);
|
|
this.reason = reason;
|
|
this.constraint = typeof failure === "string" ? undefined : failure;
|
|
}
|
|
}
|