@cerbos/core
Version:
Common types used by the Cerbos client libraries
23 lines • 1.11 kB
JavaScript
import { DeletePolicyErrorDetailsSchema, DisablePolicyErrorDetailsSchema, } from "@cerbos/api/cerbos/response/v1/response_pb";
import { policyStoreIntegrityViolationsFromProtobuf } from "../convert/fromProtobuf.js";
import { PolicyStoreIntegrityViolated } from "./external.js";
export class ErrorRegistry {
registry = new Map();
add(schema, convert) {
this.registry.set(`type.googleapis.com/${schema.typeName}`, {
schema,
convert,
});
}
get(typeUrl) {
return this.registry.get(typeUrl);
}
}
export const deletePoliciesErrorRegistry = new ErrorRegistry();
deletePoliciesErrorRegistry.add(DeletePolicyErrorDetailsSchema, policyStoreIntegrityViolated);
export const disablePoliciesErrorRegistry = new ErrorRegistry();
disablePoliciesErrorRegistry.add(DisablePolicyErrorDetailsSchema, policyStoreIntegrityViolated);
function policyStoreIntegrityViolated(code, message, { errors }, options) {
return new PolicyStoreIntegrityViolated(code, message, policyStoreIntegrityViolationsFromProtobuf(errors), options);
}
//# sourceMappingURL=registry.js.map