UNPKG

prisma-zod-generator

Version:

Prisma 2+ generator to emit Zod schemas from your Prisma schema

62 lines (61 loc) 2 kB
/** * PZG Pro - Multi-Tenant Kit Generator * DMMF-based implementation for tenant safety utilities */ import { ProFeatureBase } from '../../core/ProFeatureBase'; export interface MultiTenantConfig { outputPath?: string; tenantField?: string; tenantType?: 'string' | 'number' | 'uuid'; enforceMode?: 'strict' | 'warn' | 'log'; autoInjectTenant?: boolean; generateMiddleware?: boolean; generatePrismaExtension?: boolean; supportedModels?: string[]; excludeModels?: string[]; enableGuards?: boolean; } export interface TenantModel { name: string; tenantField: string; tenantFields?: string[]; tenantTypes?: ('string' | 'number' | 'uuid')[]; operations: { findMany: boolean; findUnique: boolean; create: boolean; update: boolean; delete: boolean; }; } export interface TenantRule { modelName: string; fieldName?: string; condition: string; enforceMode: 'strict' | 'warn' | 'log'; } export declare class MultiTenantKitGenerator extends ProFeatureBase { private config; constructor(context: any, config?: MultiTenantConfig); protected getFeatureName(): string; protected generateFeature(): Promise<void>; private analyzeTenantModels; private findTenantFields; private isTenantField; private generateTenantAwareZodSchemas; private generateTenantZodSchemasCode; private generateTenantModelSchema; private generatePrismaMiddleware; private generatePrismaMiddlewareCode; private generatePrismaExtensions; private generatePrismaExtensionsCode; private generateTenantValidationUtils; private generateTenantValidationUtilsCode; private generateModelValidator; private generateTenantContextHelpers; private generateTenantContextHelpersCode; private generateTenantTypes; private generateTenantTypesCode; private generateMultiTenantDocumentation; private generateMultiTenantDocumentationContent; }