@@ -41,6 +41,7 @@ import { trackPrismaSchemaError } from '../../prisma';
4141import { PrismaSchemaGenerator } from '../../prisma/schema-generator' ;
4242import { isDefaultWithAuth } from '../enhancer-utils' ;
4343import { generateAuthType } from './auth-type-generator' ;
44+ import { generateCheckerType } from './checker-type-generator' ;
4445
4546// information of delegate models and their sub models
4647type DelegateInfo = [ DataModel , DataModel [ ] ] [ ] ;
@@ -89,6 +90,8 @@ export class EnhancerGenerator {
8990 const authTypes = authModel ? generateAuthType ( this . model , authModel ) : '' ;
9091 const authTypeParam = authModel ? `auth.${ authModel . name } ` : 'AuthUser' ;
9192
93+ const checkerTypes = generateCheckerType ( this . model ) ;
94+
9295 const enhanceTs = this . project . createSourceFile (
9396 path . join ( this . outDir , 'enhance.ts' ) ,
9497 `import { type EnhancementContext, type EnhancementOptions, type ZodSchemas, type AuthUser } from '@zenstackhq/runtime';
105108
106109${ authTypes }
107110
111+ ${ checkerTypes }
112+
108113${
109114 logicalPrismaClientDir
110115 ? this . createLogicalPrismaEnhanceFunction ( authTypeParam )
@@ -127,14 +132,14 @@ import type * as _P from '${prismaImport}';
127132
128133 private createSimplePrismaEnhanceFunction ( authTypeParam : string ) {
129134 return `
130- export function enhance<DbClient extends object>(prisma: DbClient, context?: EnhancementContext<${ authTypeParam } >, options?: EnhancementOptions) {
135+ export function enhance<DbClient extends object>(prisma: DbClient, context?: EnhancementContext<${ authTypeParam } >, options?: EnhancementOptions): DbClient & ModelCheckers {
131136 return createEnhancement(prisma, {
132137 modelMeta,
133138 policy,
134139 zodSchemas: zodSchemas as unknown as (ZodSchemas | undefined),
135140 prismaModule: Prisma,
136141 ...options
137- }, context);
142+ }, context) as DbClient & ModelCheckers ;
138143}
139144 ` ;
140145 }
@@ -157,12 +162,12 @@ import type { Prisma, PrismaClient } from '${logicalPrismaClientDir}/index-fixed
157162// overload for plain PrismaClient
158163export function enhance<ExtArgs extends Record<string, any> & InternalArgs>(
159164 prisma: _PrismaClient<any, any, ExtArgs>,
160- context?: EnhancementContext<${ authTypeParam } >, options?: EnhancementOptions): PrismaClient;
165+ context?: EnhancementContext<${ authTypeParam } >, options?: EnhancementOptions): PrismaClient & ModelCheckers ;
161166
162167// overload for extended PrismaClient
163168export function enhance<TypeMap extends TypeMapDef, TypeMapCb extends TypeMapCbDef, ExtArgs extends Record<string, any> & InternalArgs>(
164169 prisma: DynamicClientExtensionThis<TypeMap, TypeMapCb, ExtArgs>,
165- context?: EnhancementContext<${ authTypeParam } >, options?: EnhancementOptions): DynamicClientExtensionThis<Prisma.TypeMap, Prisma.TypeMapCb, ExtArgs>;
170+ context?: EnhancementContext<${ authTypeParam } >, options?: EnhancementOptions): DynamicClientExtensionThis<Prisma.TypeMap, Prisma.TypeMapCb, ExtArgs> & ModelCheckers ;
166171
167172export function enhance(prisma: any, context?: EnhancementContext<${ authTypeParam } >, options?: EnhancementOptions): any {
168173 return createEnhancement(prisma, {
0 commit comments