prisma-rls
Version:
Prisma client extension for row-level security on any database
19 lines (18 loc) • 2.05 kB
TypeScript
import type { Prisma } from "@prisma/client/extension";
import type { FieldsMap, ModelCreateInput, ModelSelectInput, ModelUpdateInput, PermissionsConfig, PrismaTypeMap, RecursiveContext, RelationMetadata } from "./types";
export declare class ModelResolver {
protected permissionsConfig: PermissionsConfig<PrismaTypeMap, unknown>;
protected context: unknown;
protected fieldsMap: FieldsMap;
protected authorizationError: Error;
protected checkRequiredBelongsTo: boolean;
constructor(permissionsConfig: PermissionsConfig<PrismaTypeMap, unknown>, context: unknown, fieldsMap: FieldsMap, authorizationError: Error, checkRequiredBelongsTo: boolean);
resolveWhere(permissionDefinition: boolean | Record<string, unknown> | ((context: unknown) => Record<string, unknown> | Promise<Record<string, unknown>>), modelName: string, where: Record<string, unknown> | undefined): Promise<Record<string, unknown> | undefined>;
resolveWhereUnique(permissionDefinition: boolean | Record<string, unknown> | ((context: unknown) => Record<string, unknown> | Promise<Record<string, unknown>>), modelName: string, whereUnique: Record<string, unknown>): Promise<Record<string, unknown>>;
protected generateModelRelationsCount(modelName: string): Promise<ModelSelectInput>;
protected resolveRelationSelect(modelName: string, select: ModelSelectInput, relationsMetadata: RelationMetadata[], recursiveContext: RecursiveContext): Promise<ModelSelectInput>;
resolveSelectAndInclude(modelName: string, select: ModelSelectInput | null | undefined, include: ModelSelectInput | null | undefined, relationsMetadata: RelationMetadata[], recursiveContext: RecursiveContext): Promise<Record<string, unknown>>;
resolveCreate(modelName: string, data: ModelCreateInput): Promise<ModelCreateInput>;
resolveUpdate(modelName: string, data: ModelUpdateInput): Promise<ModelUpdateInput>;
performRelationProcessing(transactionClient: Prisma.TransactionClient, result: unknown, relationsMetadata: RelationMetadata[]): Promise<unknown>;
}