zenstack
Version:
FullStack enhancement for Prisma ORM: seamless integration from database to UI
57 lines (56 loc) • 1.71 kB
TypeScript
import { Expression } from '@zenstackhq/language/ast';
import { PolicyOperationKind } from '@zenstackhq/runtime';
import { CodeWriter } from '@zenstackhq/sdk';
export declare const TRUE = "{ AND: [] }";
export declare const FALSE = "{ OR: [] }";
export type ExpressionWriterOptions = {
isPostGuard?: boolean;
operationContext: PolicyOperationKind;
};
/**
* Utility for writing ZModel expression as Prisma query argument objects into a ts-morph writer
*/
export declare class ExpressionWriter {
private readonly writer;
private readonly options;
private readonly plainExprBuilder;
/**
* Constructs a new ExpressionWriter
*/
constructor(writer: CodeWriter, options: ExpressionWriterOptions);
/**
* Writes the given ZModel expression.
*/
write(expr: Expression): void;
private writeReference;
private writeBaseHierarchy;
private getDelegateBase;
private isFieldReferenceToDelegateModel;
private writeMemberAccess;
private writeExprList;
private writeBinary;
private writeIn;
private writeCollectionPredicate;
private isFieldAccess;
private guard;
private plain;
private writeIdFieldsCheck;
private writeComparison;
private stripFutureCall;
private isFutureMemberAccess;
private requireIdFields;
private equivalentRefs;
private writeFieldReference;
private isAuthOrAuthMemberAccess;
private writeOperator;
private writeFieldCondition;
private block;
private isModelTyped;
private mapOperator;
private negateOperator;
private writeLogical;
private writeUnary;
private writeLiteral;
private writeInvocation;
private writeRelationCheck;
}