@clickup/ent-framework
Version:
A PostgreSQL graph-database-alike library with microsharding and row-level security
29 lines • 1.44 kB
TypeScript
import type { Row, RowWithID, Table } from "../../types";
import type { EntClass } from "../types";
import type { VC } from "../VC";
import type { Predicate } from "./Predicate";
/**
* An ent may represent not necessarily a node in the graph, but also an edge
* between two nodes. Consider EntMember in the below example:
*
* vc.principal <--- EntMember[user_id, company_id] ---> EntCompany
*
* This predicate verifies that for a e.g. given EntCompany row and a given VC,
* an EntMember row exists (and optionally matches some criterion) in the
* database.
*
* - entEdgeVCField = user_id in the above example
* - entEdgeFKField = company_id in the above example
* - if an EntMember object exists, it must also match entEdgeFilter()
*/
export declare class IncomingEdgeFromVCExists<TEdgeTable extends Table> implements Predicate<RowWithID> {
readonly EntEdge: EntClass<TEdgeTable>;
readonly entEdgeVCField: keyof Row<TEdgeTable>;
readonly entEdgeFKField: keyof Row<TEdgeTable>;
readonly entEdgeFilter?: ((ent: Row<TEdgeTable>) => boolean) | undefined;
private readonly instanceID;
readonly name: string;
constructor(EntEdge: EntClass<TEdgeTable>, entEdgeVCField: keyof Row<TEdgeTable>, entEdgeFKField: keyof Row<TEdgeTable>, entEdgeFilter?: ((ent: Row<TEdgeTable>) => boolean) | undefined);
check(vc: VC, row: RowWithID): Promise<boolean>;
}
//# sourceMappingURL=IncomingEdgeFromVCExists.d.ts.map