prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
119 lines (118 loc) • 3.77 kB
TypeScript
import { JSONSchema7 } from 'json-schema';
/**
* Comprehensive JSON Schema for Prisma Zod Generator configuration
*
* This schema defines strict validation rules for all configuration options
* including data types, constraints, and allowed values.
*/
export declare const ConfigurationSchema: JSONSchema7;
/**
* Schema for validating individual field names
*/
export declare const FieldNameSchema: JSONSchema7;
/**
* Schema for validating model names (PascalCase)
*/
export declare const ModelNameSchema: JSONSchema7;
/**
* Schema for validating output directory paths
*/
export declare const OutputPathSchema: JSONSchema7;
/**
* Schema for validating file suffixes
*/
export declare const SuffixSchema: JSONSchema7;
/**
* Available Prisma operations that can be configured
*/
export declare const PRISMA_OPERATIONS: readonly ["findMany", "findUnique", "findUniqueOrThrow", "findFirst", "findFirstOrThrow", "create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany", "aggregate", "groupBy", "count"];
/**
* Available generation modes
*/
export declare const GENERATION_MODES: readonly ["full", "minimal", "custom"];
/**
* Available schema variants
*/
export declare const SCHEMA_VARIANTS: readonly ["pure", "input", "result"];
/**
* Default configuration values
*/
export declare const DEFAULT_CONFIG: {
readonly mode: "full";
readonly output: "./generated";
readonly globalExclusions: {};
readonly variants: {
readonly pure: {
readonly enabled: true;
readonly suffix: ".model";
};
readonly input: {
readonly enabled: true;
readonly suffix: ".input";
};
readonly result: {
readonly enabled: true;
readonly suffix: ".result";
};
};
readonly models: {};
};
/**
* Minimal mode operation set
*/
export declare const MINIMAL_OPERATIONS: readonly ["findMany", "findUnique", "findFirst", "create", "update", "delete"];
/**
* Configuration validation error types
*/
export declare enum ValidationErrorType {
INVALID_JSON_SCHEMA = "INVALID_JSON_SCHEMA",
INVALID_FIELD_NAME = "INVALID_FIELD_NAME",
INVALID_MODEL_NAME = "INVALID_MODEL_NAME",
INVALID_OPERATION = "INVALID_OPERATION",
INVALID_MODE = "INVALID_MODE",
INVALID_VARIANT = "INVALID_VARIANT",
DUPLICATE_VALUES = "DUPLICATE_VALUES",
MISSING_REQUIRED = "MISSING_REQUIRED"
}
/**
* Configuration validation error details
*/
export interface ValidationError {
type: ValidationErrorType;
message: string;
path: string;
value?: unknown;
allowedValues?: unknown[];
}
/**
* Utility function to validate field names
*/
export declare function isValidFieldName(fieldName: string): boolean;
/**
* Utility function to validate model names (PascalCase)
*/
export declare function isValidModelName(modelName: string): boolean;
/**
* Utility function to validate Prisma operations
*/
export declare function isValidOperation(operation: string): boolean;
/**
* Utility function to validate generation modes
*/
export declare function isValidMode(mode: string): boolean;
/**
* Utility function to validate schema variants
*/
export declare function isValidVariant(variant: string): boolean;
/**
* Utility function to validate file suffixes
*/
export declare function isValidSuffix(suffix: string): boolean;
/**
* Get schema reference for a specific configuration section
*/
export declare function getSchemaSection(section: 'variantConfig' | 'modelConfig'): JSONSchema7;
/**
* Create a custom schema for validating specific parts of the configuration
*/
export declare function createPartialSchema(properties: string[]): JSONSchema7;