prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
102 lines • 2.94 kB
JavaScript
"use strict";
/**
* Variant Management System Types
* Defines TypeScript interfaces for schema variant generation system
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_SCHEMA_OPTIONS = exports.DEFAULT_VALIDATION_CUSTOMIZATIONS = exports.DEFAULT_FIELD_EXCLUSIONS = exports.DEFAULT_NAMING_CONFIGS = exports.VariantType = void 0;
/**
* Supported schema variant types
*/
var VariantType;
(function (VariantType) {
VariantType["PURE"] = "pure";
VariantType["INPUT"] = "input";
VariantType["RESULT"] = "result";
})(VariantType || (exports.VariantType = VariantType = {}));
/**
* Default naming configurations for each variant type
*/
exports.DEFAULT_NAMING_CONFIGS = {
[]: {
suffix: '.model.ts',
schemaNameSuffix: 'Model',
typeNameSuffix: 'ModelType',
},
[]: {
suffix: '.input.ts',
schemaNameSuffix: 'Input',
typeNameSuffix: 'InputType',
},
[]: {
suffix: '.result.ts',
schemaNameSuffix: 'Result',
typeNameSuffix: 'ResultType',
},
};
/**
* Default field exclusion rules for each variant type
*/
exports.DEFAULT_FIELD_EXCLUSIONS = {
[]: {
excludeFields: [],
excludeRelations: false,
excludeAutoGenerated: false,
},
[]: {
excludeFields: ['id', 'createdAt', 'updatedAt'],
excludeRelations: true,
excludeAutoGenerated: true,
},
[]: {
excludeFields: [],
excludeRelations: false,
excludeAutoGenerated: false,
},
};
/**
* Default validation customizations for each variant type
*/
exports.DEFAULT_VALIDATION_CUSTOMIZATIONS = {
[]: {
disableInlineValidations: false,
partial: false,
},
[]: {
disableInlineValidations: false,
partial: false,
additionalValidations: {
// Add stricter validations for input
email: ['email()'],
password: ['min(8)', 'regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)/)'],
},
},
[]: {
disableInlineValidations: true, // Results don't need validation
partial: false,
},
};
/**
* Default schema generation options for each variant type
*/
exports.DEFAULT_SCHEMA_OPTIONS = {
[]: {
includeDocumentation: true,
includeExamples: true,
generateTypes: true,
includeStatistics: true,
},
[]: {
includeDocumentation: true,
includeExamples: false,
generateTypes: true,
includeStatistics: false,
},
[]: {
includeDocumentation: false,
includeExamples: false,
generateTypes: true,
includeStatistics: false,
},
};
//# sourceMappingURL=variants.js.map