nosql-constraints
Version:
Helpers to manage constrants (i.e. cascade delete) in a NoSQL database
25 lines (24 loc) • 1.35 kB
TypeScript
import { type UnknownStringRecord } from 'typesafe-utilities';
import { IDiGraph } from 'ya-digraph-js';
import { DocumentSchemaAdapter } from '../adapter/schema';
import { Constraints } from './constraints.js';
import { Constraint, DocumentReference } from './types';
type _ConstraintVertex = DocumentReference<UnknownStringRecord>;
type _ConstraintEdge = Constraint<UnknownStringRecord, UnknownStringRecord>;
export declare class ConstraintsFactory {
#private;
get constraintsGraph(): IDiGraph<_ConstraintVertex, _ConstraintEdge>;
addDocumentSchema(containerId: string, schema: DocumentSchemaAdapter): void;
private findDocumentSchemaChunks;
private validateDocumentReference;
private findPropertySchemaChunksForProperty;
private findDocumentSchemaChunksForProperty;
private validateConstraint;
private constructDocRefVertex;
private constructAndFilterVertices;
addConstraint<TReferencing extends UnknownStringRecord, TReferenced extends UnknownStringRecord>(referencing: DocumentReference<TReferencing>, constraint: Constraint<TReferencing, TReferenced>, referenced: DocumentReference<TReferenced>): void;
addCompoundConstraint<TDoc extends UnknownStringRecord>(compound: DocumentReference<TDoc>, constraint: Constraint<TDoc, TDoc>): void;
validate(): void;
build(): Constraints;
}
export {};