jinaga
Version:
Data management for web and mobile applications.
24 lines • 1.07 kB
TypeScript
import { FactRecord, FactReference, ProjectedResult } from "../storage";
import { Specification } from "./specification";
export interface FactSource {
findFact(reference: FactReference): Promise<FactRecord | null>;
getPredecessors(reference: FactReference, name: string, predecessorType: string): Promise<FactReference[]>;
getSuccessors(reference: FactReference, name: string, successorType: string): Promise<FactReference[]>;
hydrate(reference: FactReference): Promise<unknown>;
}
export declare class SpecificationRunner {
private readonly source;
constructor(source: FactSource);
read(start: FactReference[], specification: Specification): Promise<ProjectedResult[]>;
private executeMatchesAndProjection;
private executeMatches;
private executeMatch;
private executePathCondition;
private executePredecessorStep;
private executeSuccessorStep;
private filterByCondition;
private createProduct;
private createComponent;
private createSingularProduct;
}
//# sourceMappingURL=specification-runner.d.ts.map