prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
62 lines (61 loc) • 2 kB
TypeScript
/**
* 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;
}