zenstack
Version:
FullStack enhancement for Prisma ORM: seamless integration from database to UI
44 lines (43 loc) • 1.27 kB
TypeScript
import { Expression } from '@zenstackhq/sdk/ast';
/**
* Options for {@link ConstraintTransformer}.
*/
export type ConstraintTransformerOptions = {
authAccessor: string;
};
/**
* Transform a set of allow and deny rules into a single constraint expression.
*/
export declare class ConstraintTransformer {
private readonly options;
private varCounter;
constructor(options: ConstraintTransformerOptions);
/**
* Transforms a set of allow and deny rules into a single constraint expression.
*/
transformRules(allows: Expression[], denies: Expression[]): string;
private and;
private or;
private not;
private transformExpression;
private transformLiteral;
private transformReference;
private transformMemberAccess;
private transformBinary;
private transformUnary;
private transformComparison;
private transformAuthComparison;
private transformCheckInvocation;
private normalizeToNull;
private isAuthEqualNull;
private isAuthNotEqualNull;
private getComparisonOperand;
private mapExpressionType;
private mapType;
private mapOperatorToConstraintKind;
private getFieldAccess;
private getAuthAccess;
private nextVar;
private variable;
private value;
}