prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
69 lines (68 loc) • 2.06 kB
TypeScript
/**
* PZG Pro - Contract Testing Generator
* DMMF-based implementation for API contract testing
*/
import { ProFeatureBase } from '../../core/ProFeatureBase';
export interface ContractTestConfig {
outputPath?: string;
providers?: string[];
consumers?: string[];
includeResponseValidation?: boolean;
includeRequestValidation?: boolean;
mockServer?: boolean;
wiremockConfig?: WiremockConfig;
}
export interface WiremockConfig {
port?: number;
host?: string;
mappingsPath?: string;
standalone?: boolean;
}
export interface ContractDefinition {
provider: string;
consumer: string;
interactions: Interaction[];
}
export interface Interaction {
description: string;
request: {
method: string;
path: string;
headers?: Record<string, string>;
body?: unknown;
query?: Record<string, string>;
};
response: {
status: number;
headers?: Record<string, string>;
body?: unknown;
};
}
export declare class ContractTestingGenerator extends ProFeatureBase {
private config;
constructor(context: any, config?: ContractTestConfig);
protected getFeatureName(): string;
protected generateFeature(): Promise<void>;
private generateContractDefinitions;
private generateModelInteractions;
private generateRequestSchema;
private generateResponseSchema;
private generateFieldExample;
private generatePactTests;
private generatePactTestFile;
private generatePactInteraction;
private generateMockServer;
private generateMockServerCode;
private generateMockEndpoint;
private generateWiremockMappings;
private generateWiremockMapping;
private generateValidationHelpers;
private generateValidationHelpersCode;
private generateModelValidationSchema;
private getZodType;
private generateContractDocumentation;
private generateDocumentationContent;
private generateAPIClient;
private generateAPIClientCode;
private generateModelClientMethods;
}