Files
reverse-engineering-anything/src/domain/unknownRegistryError.ts
T

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;
}
}