@stryke/prisma-trpc-generator 0.13.49 → 0.13.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/rolldown_runtime.cjs +31 -1
- package/dist/_virtual/rolldown_runtime.mjs +32 -1
- package/dist/config.cjs +50 -1
- package/dist/config.mjs +49 -1
- package/dist/config.mjs.map +1 -1
- package/dist/generator.cjs +1 -1
- package/dist/generator.mjs +3 -1
- package/dist/helpers.cjs +281 -32
- package/dist/helpers.mjs +271 -32
- package/dist/helpers.mjs.map +1 -1
- package/dist/index.cjs +26 -1
- package/dist/index.mjs +27 -1
- package/dist/index.mjs.map +1 -1
- package/dist/packages/env/src/get-env-paths.cjs +87 -1
- package/dist/packages/env/src/get-env-paths.mjs +84 -1
- package/dist/packages/env/src/get-env-paths.mjs.map +1 -1
- package/dist/packages/string-format/src/acronyms.cjs +408 -1
- package/dist/packages/string-format/src/acronyms.mjs +407 -1
- package/dist/packages/string-format/src/acronyms.mjs.map +1 -1
- package/dist/packages/string-format/src/articles.cjs +10 -1
- package/dist/packages/string-format/src/articles.mjs +9 -1
- package/dist/packages/string-format/src/articles.mjs.map +1 -1
- package/dist/packages/string-format/src/combine.cjs +15 -1
- package/dist/packages/string-format/src/combine.mjs +14 -1
- package/dist/packages/string-format/src/combine.mjs.map +1 -1
- package/dist/packages/string-format/src/conjunctions.cjs +32 -1
- package/dist/packages/string-format/src/conjunctions.mjs +31 -1
- package/dist/packages/string-format/src/conjunctions.mjs.map +1 -1
- package/dist/packages/string-format/src/decamelize.cjs +14 -1
- package/dist/packages/string-format/src/decamelize.mjs +13 -1
- package/dist/packages/string-format/src/decamelize.mjs.map +1 -1
- package/dist/packages/string-format/src/format-special-cases.cjs +33 -1
- package/dist/packages/string-format/src/format-special-cases.mjs +33 -1
- package/dist/packages/string-format/src/format-special-cases.mjs.map +1 -1
- package/dist/packages/string-format/src/lower-case-first.cjs +17 -1
- package/dist/packages/string-format/src/lower-case-first.mjs +16 -1
- package/dist/packages/string-format/src/lower-case-first.mjs.map +1 -1
- package/dist/packages/string-format/src/prepositions.cjs +68 -1
- package/dist/packages/string-format/src/prepositions.mjs +67 -1
- package/dist/packages/string-format/src/prepositions.mjs.map +1 -1
- package/dist/packages/string-format/src/special-cases.cjs +53 -1
- package/dist/packages/string-format/src/special-cases.mjs +52 -1
- package/dist/packages/string-format/src/special-cases.mjs.map +1 -1
- package/dist/packages/string-format/src/title-case.cjs +19 -1
- package/dist/packages/string-format/src/title-case.mjs +19 -1
- package/dist/packages/string-format/src/title-case.mjs.map +1 -1
- package/dist/packages/string-format/src/upper-case-first.cjs +17 -1
- package/dist/packages/string-format/src/upper-case-first.mjs +16 -1
- package/dist/packages/string-format/src/upper-case-first.mjs.map +1 -1
- package/dist/prisma-generator.cjs +185 -8
- package/dist/prisma-generator.mjs +184 -8
- package/dist/prisma-generator.mjs.map +1 -1
- package/dist/project.cjs +15 -1
- package/dist/project.mjs +14 -1
- package/dist/project.mjs.map +1 -1
- package/dist/utils/format-file.cjs +25 -1
- package/dist/utils/format-file.mjs +23 -1
- package/dist/utils/format-file.mjs.map +1 -1
- package/dist/utils/get-jiti.cjs +21 -1
- package/dist/utils/get-jiti.mjs +20 -1
- package/dist/utils/get-jiti.mjs.map +1 -1
- package/dist/utils/get-prisma-internals.cjs +13 -1
- package/dist/utils/get-prisma-internals.mjs +12 -1
- package/dist/utils/get-prisma-internals.mjs.map +1 -1
- package/dist/utils/write-file-safely.cjs +32 -2
- package/dist/utils/write-file-safely.mjs +29 -2
- package/dist/utils/write-file-safely.mjs.map +1 -1
- package/dist/zod/aggregate-helpers.cjs +70 -1
- package/dist/zod/aggregate-helpers.mjs +67 -1
- package/dist/zod/aggregate-helpers.mjs.map +1 -1
- package/dist/zod/comments-helpers.cjs +77 -1
- package/dist/zod/comments-helpers.mjs +75 -1
- package/dist/zod/comments-helpers.mjs.map +1 -1
- package/dist/zod/docs-helpers.cjs +23 -3
- package/dist/zod/docs-helpers.mjs +20 -3
- package/dist/zod/docs-helpers.mjs.map +1 -1
- package/dist/zod/generator-helpers.cjs +34 -1
- package/dist/zod/generator-helpers.mjs +31 -1
- package/dist/zod/generator-helpers.mjs.map +1 -1
- package/dist/zod/helpers.cjs +26 -1
- package/dist/zod/helpers.mjs +26 -1
- package/dist/zod/helpers.mjs.map +1 -1
- package/dist/zod/include-helpers.cjs +69 -1
- package/dist/zod/include-helpers.mjs +69 -1
- package/dist/zod/include-helpers.mjs.map +1 -1
- package/dist/zod/model-helpers.cjs +244 -1
- package/dist/zod/model-helpers.mjs +236 -1
- package/dist/zod/model-helpers.mjs.map +1 -1
- package/dist/zod/modelArgs-helpers.cjs +56 -1
- package/dist/zod/modelArgs-helpers.mjs +56 -1
- package/dist/zod/modelArgs-helpers.mjs.map +1 -1
- package/dist/zod/mongodb-helpers.cjs +49 -1
- package/dist/zod/mongodb-helpers.mjs +48 -1
- package/dist/zod/mongodb-helpers.mjs.map +1 -1
- package/dist/zod/select-helpers.cjs +128 -1
- package/dist/zod/select-helpers.mjs +128 -1
- package/dist/zod/select-helpers.mjs.map +1 -1
- package/dist/zod/transformer.cjs +434 -19
- package/dist/zod/transformer.mjs +432 -19
- package/dist/zod/transformer.mjs.map +1 -1
- package/dist/zod/whereUniqueInput-helpers.cjs +17 -1
- package/dist/zod/whereUniqueInput-helpers.mjs +16 -1
- package/dist/zod/whereUniqueInput-helpers.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.mjs","names":["line: string","prismaClientImportPath: string","modelQueryTypeSuffixToQueryName: Record<string, string>"],"sources":["../../src/zod/transformer.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type {\n ConnectorType,\n DMMF as PrismaDMMF\n} from \"@prisma/generator-helper\";\nimport { lowerCaseFirst } from \"@stryke/string-format/lower-case-first\";\nimport { upperCaseFirst } from \"@stryke/string-format/upper-case-first\";\nimport path from \"node:path\";\nimport type {\n AggregateOperationSupport,\n TransformerParams,\n Writeable\n} from \"../types\";\nimport { writeFileSafely, writeIndexFile } from \"../utils/write-file-safely\";\nimport { isAggregateInputType } from \"./aggregate-helpers\";\nimport { checkModelHasModelRelation, findModelByName } from \"./model-helpers\";\nimport { isMongodbRawOp } from \"./mongodb-helpers\";\n\nexport default class Transformer {\n name: string;\n\n fields: Writeable<PrismaDMMF.SchemaArg[]>;\n\n schemaImports = new Set<string>();\n\n models: Writeable<PrismaDMMF.Model[]>;\n\n modelOperations: Writeable<PrismaDMMF.ModelMapping[]>;\n\n aggregateOperationSupport: AggregateOperationSupport;\n\n enumTypes: Writeable<PrismaDMMF.SchemaEnum[]>;\n\n static enumNames: string[] = [];\n\n static rawOpsMap: { [name: string]: string } = {};\n\n static provider: ConnectorType;\n\n static previewFeatures: string[] | undefined;\n\n private static outputPath: string = \"./generated\";\n\n private hasJson = false;\n\n private static prismaClientOutputPath: string = \"@prisma/client\";\n\n private static isCustomPrismaClientOutputPath: boolean = false;\n\n private static isGenerateSelect: boolean = true;\n\n private static isGenerateInclude: boolean = true;\n\n constructor(params: Writeable<TransformerParams>) {\n this.name = params.name ?? \"\";\n this.fields = params.fields ?? [];\n this.models = params.models ?? [];\n this.modelOperations = params.modelOperations ?? [];\n this.aggregateOperationSupport = params.aggregateOperationSupport ?? {};\n this.enumTypes = params.enumTypes ?? [];\n }\n\n static setOutputPath(outPath: string) {\n this.outputPath = outPath;\n }\n\n static setIsGenerateSelect(isGenerateSelect: boolean) {\n this.isGenerateSelect = isGenerateSelect;\n }\n\n static setIsGenerateInclude(isGenerateInclude: boolean) {\n this.isGenerateInclude = isGenerateInclude;\n }\n\n static getOutputPath() {\n return this.outputPath;\n }\n\n static setPrismaClientOutputPath(prismaClientCustomPath: string) {\n this.prismaClientOutputPath = prismaClientCustomPath;\n this.isCustomPrismaClientOutputPath =\n prismaClientCustomPath !== \"@prisma/client\";\n }\n\n static async generateIndex() {\n const indexPath = path.join(Transformer.outputPath, \"schemas/index.ts\");\n await writeIndexFile(indexPath);\n }\n\n async generateEnumSchemas() {\n for (const enumType of this.enumTypes) {\n const { name, values } = enumType;\n\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/enums/${lowerCaseFirst(name)}.schema.ts`\n ),\n `${this.generateImportZodStatement()}\\n${this.generateExportSchemaStatement(\n `${lowerCaseFirst(name)}`,\n `z.enum(${JSON.stringify(values)})`\n )}`\n );\n }\n }\n\n generateImportZodStatement() {\n return \"import { z } from 'zod';\\n\";\n }\n\n generateExportSchemaStatement(name: string, schema: string) {\n return `export const ${lowerCaseFirst(name)}Schema = ${schema}`;\n }\n\n async generateObjectSchema() {\n const zodObjectSchemaFields = this.generateObjectSchemaFields();\n const objectSchema = this.prepareObjectSchema(zodObjectSchemaFields);\n const objectSchemaName = this.resolveObjectSchemaName();\n\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/objects/${lowerCaseFirst(objectSchemaName)}.schema.ts`\n ),\n objectSchema\n );\n }\n\n generateObjectSchemaFields() {\n const zodObjectSchemaFields = this.fields\n .map(field => this.generateObjectSchemaField(field))\n .flatMap(item => item)\n .map(item => {\n const [zodStringWithMainType, field, skipValidators] = item;\n\n const value = skipValidators\n ? zodStringWithMainType\n : this.generateFieldValidators(zodStringWithMainType, field);\n\n return value.trim();\n });\n\n return zodObjectSchemaFields;\n }\n\n generateObjectSchemaField(\n field: PrismaDMMF.SchemaArg\n ): [string, PrismaDMMF.SchemaArg, boolean][] {\n const lines = field.inputTypes;\n\n if (lines.length === 0) {\n return [];\n }\n\n let alternatives = lines.reduce<string[]>((result, inputType) => {\n if (inputType.type === \"String\") {\n result.push(this.wrapWithZodValidators(\"z.string()\", field));\n } else if (\n inputType.type === \"Int\" ||\n inputType.type === \"Float\" ||\n inputType.type === \"Decimal\"\n ) {\n result.push(this.wrapWithZodValidators(\"z.number()\", field));\n } else if (inputType.type === \"BigInt\") {\n result.push(this.wrapWithZodValidators(\"z.bigint()\", field));\n } else if (inputType.type === \"Boolean\") {\n result.push(this.wrapWithZodValidators(\"z.boolean()\", field));\n } else if (inputType.type === \"DateTime\") {\n result.push(this.wrapWithZodValidators(\"z.coerce.date()\", field));\n } else if (inputType.type === \"Json\") {\n this.hasJson = true;\n\n result.push(this.wrapWithZodValidators(\"jsonSchema\", field));\n } else if (inputType.type === \"True\") {\n result.push(this.wrapWithZodValidators(\"z.literal(true)\", field));\n } else if (inputType.type === \"Bytes\") {\n result.push(this.wrapWithZodValidators(\"z.instanceof(Buffer)\", field));\n } else if (!inputType.type.endsWith(\"FieldRefInput\")) {\n const isEnum = inputType.location === \"enumTypes\";\n\n if (inputType.namespace === \"prisma\" || isEnum) {\n if (\n inputType.type !== this.name &&\n typeof inputType.type === \"string\"\n ) {\n this.addSchemaImport(inputType.type);\n }\n\n result.push(\n this.generatePrismaStringLine(field, inputType, lines.length)\n );\n }\n }\n\n return result;\n }, []);\n\n if (alternatives.length === 0) {\n return [];\n }\n\n if (alternatives.length > 1) {\n alternatives = alternatives.map(alter =>\n alter.replace(\".optional()\", \"\")\n );\n }\n\n const fieldName = alternatives.some(alt => alt.includes(\":\"))\n ? \"\"\n : ` ${field.name}:`;\n\n const opt = !field.isRequired ? \".optional()\" : \"\";\n\n let resString =\n alternatives.length === 1\n ? alternatives.join(\",\\r\\n\")\n : `z.union([${alternatives.join(\",\\r\\n\")}])${opt}`;\n\n if (field.isNullable) {\n resString += \".nullable()\";\n }\n\n return [[` ${fieldName} ${resString} `, field, true]];\n }\n\n wrapWithZodValidators(mainValidator: string, field: PrismaDMMF.SchemaArg) {\n let line: string = \"\";\n line = mainValidator;\n\n if (field.inputTypes.some(inputType => inputType.isList)) {\n line += \".array()\";\n }\n\n if (!field.isRequired) {\n line += \".optional()\";\n }\n\n return line;\n }\n\n addSchemaImport(name: string) {\n this.schemaImports.add(name);\n }\n\n generatePrismaStringLine(\n field: PrismaDMMF.SchemaArg,\n inputType: PrismaDMMF.InputTypeRef,\n inputsLength: number\n ) {\n // if (field.inputTypes.length === 0 || !field.inputTypes[0]) {\n // return \"\";\n // }\n\n // const inputType = field.inputTypes[0];\n\n const isEnum = inputType.location === \"enumTypes\";\n\n const inputTypeString = inputType.type;\n const { isModelQueryType, modelName, queryName } =\n this.checkIsModelQueryType(inputTypeString);\n\n const objectSchemaLine = isModelQueryType\n ? this.resolveModelQuerySchemaName(modelName!, queryName!)\n : `${inputTypeString}ObjectSchema`;\n const enumSchemaLine = `${inputTypeString}Schema`;\n\n const schema =\n inputType.type === this.name\n ? objectSchemaLine\n : isEnum\n ? enumSchemaLine\n : objectSchemaLine;\n const arr = inputType.isList ? \".array()\" : \"\";\n const opt = !field.isRequired ? \".optional()\" : \"\";\n\n return inputsLength === 1\n ? ` ${field.name}: z.lazy(() => ${lowerCaseFirst(schema)})${arr}${opt}`\n : `z.lazy(() => ${lowerCaseFirst(schema)})${arr}${opt}`;\n }\n\n generateFieldValidators(\n zodStringWithMainType: string,\n field: PrismaDMMF.SchemaArg\n ) {\n const { isRequired, isNullable } = field;\n\n if (!isRequired) {\n zodStringWithMainType += \".optional()\";\n }\n\n if (isNullable) {\n zodStringWithMainType += \".nullable()\";\n }\n\n return zodStringWithMainType;\n }\n\n prepareObjectSchema(zodObjectSchemaFields: string[]) {\n const objectSchema = `${this.generateExportObjectSchemaStatement(\n this.addFinalWrappers({ zodStringFields: zodObjectSchemaFields })\n )}\\n`;\n\n const prismaImportStatement = this.generateImportPrismaStatement();\n\n const json = this.generateJsonSchemaImplementation();\n\n return `${this.generateObjectSchemaImportStatements()}${prismaImportStatement}${json}${objectSchema}`;\n }\n\n generateExportObjectSchemaStatement(schema: string) {\n let name = this.name;\n let exportName = this.name;\n if (Transformer.provider === \"mongodb\") {\n if (isMongodbRawOp(name)) {\n name = Transformer.rawOpsMap[name]!;\n exportName = name.replace(\"Args\", \"\");\n }\n }\n\n if (isAggregateInputType(name)) {\n name = `${name}Type`;\n }\n const end = `export const ${lowerCaseFirst(exportName)}ObjectSchema = schema`;\n\n return `const schema: z.ZodType<Prisma.${name}> = ${schema};\\n\\n ${end}`;\n }\n\n addFinalWrappers({ zodStringFields }: { zodStringFields: string[] }) {\n const fields = [...zodStringFields];\n\n return `${this.wrapWithZodObject(fields)}.strict()`;\n }\n\n generateImportPrismaStatement() {\n let prismaClientImportPath: string;\n if (Transformer.isCustomPrismaClientOutputPath) {\n /**\n * If a custom location was designated for the prisma client, we need to figure out the\n * relative path from \\{outputPath\\}/schemas/objects to \\{prismaClientCustomPath\\}\n */\n const fromPath = path.join(Transformer.outputPath, \"schemas\", \"objects\");\n const toPath = Transformer.prismaClientOutputPath;\n const relativePathFromOutputToPrismaClient = path\n .relative(fromPath, toPath)\n .split(path.sep)\n .join(path.posix.sep);\n prismaClientImportPath = relativePathFromOutputToPrismaClient;\n } else {\n /**\n * If the default output path for prisma client (\\@prisma/client) is being used, we can import from it directly\n * without having to resolve a relative path\n */\n prismaClientImportPath = Transformer.prismaClientOutputPath;\n }\n return `import type { Prisma } from '${prismaClientImportPath}';\\n\\n`;\n }\n\n generateJsonSchemaImplementation() {\n let jsonSchemaImplementation = \"\";\n\n if (this.hasJson) {\n jsonSchemaImplementation += `\\n`;\n jsonSchemaImplementation += `const literalSchema = z.union([z.string(), z.number(), z.boolean()]);\\n`;\n jsonSchemaImplementation += `const jsonSchema: z.ZodType<Prisma.InputJsonValue> = z.lazy(() =>\\n`;\n jsonSchemaImplementation += ` z.union([literalSchema, z.array(jsonSchema.nullable()), z.record(jsonSchema.nullable())])\\n`;\n jsonSchemaImplementation += `);\\n\\n`;\n }\n\n return jsonSchemaImplementation;\n }\n\n generateObjectSchemaImportStatements() {\n let generatedImports = this.generateImportZodStatement();\n generatedImports += this.generateSchemaImports();\n generatedImports += \"\\n\\n\";\n return generatedImports;\n }\n\n generateSchemaImports() {\n return [...this.schemaImports]\n .map(name => {\n const { isModelQueryType, modelName, queryName } =\n this.checkIsModelQueryType(name);\n if (isModelQueryType) {\n return `import { ${this.resolveModelQuerySchemaName(\n modelName!,\n queryName!\n )} } from '../${queryName}${modelName}.schema'`;\n } else if (Transformer.enumNames.includes(name)) {\n return `import { ${lowerCaseFirst(name)}Schema } from '../enums/${lowerCaseFirst(name)}.schema'`;\n } else {\n return `import { ${lowerCaseFirst(name)}ObjectSchema } from './${lowerCaseFirst(name)}.schema'`;\n }\n })\n .join(\";\\r\\n\");\n }\n\n checkIsModelQueryType(type: string) {\n const modelQueryTypeSuffixToQueryName: Record<string, string> = {\n FindManyArgs: \"findMany\"\n };\n for (const modelQueryType of [\"FindManyArgs\"]) {\n if (type.includes(modelQueryType)) {\n const modelQueryTypeSuffixIndex = type.indexOf(modelQueryType);\n\n return {\n isModelQueryType: true,\n modelName: type.substring(0, modelQueryTypeSuffixIndex),\n queryName: modelQueryTypeSuffixToQueryName[modelQueryType]\n };\n }\n }\n return { isModelQueryType: false };\n }\n\n resolveModelQuerySchemaName(modelName: string, queryName: string) {\n const modelNameUncapitalized = lowerCaseFirst(modelName);\n const queryNameCapitalized = upperCaseFirst(queryName);\n\n return `${modelNameUncapitalized}${queryNameCapitalized}Schema`;\n }\n\n wrapWithZodUnion(zodStringFields: string[]) {\n let wrapped = \"\";\n\n wrapped += \"z.union([\";\n wrapped += \"\\n\";\n wrapped += ` ${zodStringFields.join(\",\")}`;\n wrapped += \"\\n\";\n wrapped += \"])\";\n return wrapped;\n }\n\n wrapWithZodObject(zodStringFields: string | string[]) {\n let wrapped = \"\";\n\n wrapped += \"z.object({\";\n wrapped += \"\\n\";\n wrapped += ` ${typeof zodStringFields === \"string\" ? zodStringFields : zodStringFields.join(\",\\n \")}`;\n wrapped += \"\\n\";\n wrapped += \"})\";\n return wrapped;\n }\n\n resolveObjectSchemaName() {\n let name = this.name;\n let exportName = this.name;\n if (isMongodbRawOp(name)) {\n name = Transformer.rawOpsMap[name]!;\n exportName = name.replace(\"Args\", \"\");\n }\n\n return lowerCaseFirst(exportName);\n }\n\n async generateModelSchemas() {\n for (const modelOperation of this.modelOperations) {\n const {\n findUnique,\n findFirst,\n findMany,\n // @ts-ignore\n createOne,\n createMany,\n createManyAndReturn,\n // @ts-ignore\n deleteOne,\n // @ts-ignore\n updateOne,\n deleteMany,\n updateMany,\n updateManyAndReturn,\n // @ts-ignore\n upsertOne,\n aggregate,\n groupBy\n } = modelOperation;\n\n const model = findModelByName(this.models, modelOperation.model)!;\n const modelName = lowerCaseFirst(modelOperation.model)!;\n\n const {\n selectImport,\n includeImport,\n selectZodSchemaLine,\n includeZodSchemaLine,\n selectZodSchemaLineLazy,\n includeZodSchemaLineLazy\n } = this.resolveSelectIncludeImportAndZodSchemaLine(model);\n\n const { orderByImport, orderByZodSchemaLine } =\n this.resolveOrderByWithRelationImportAndZodSchemaLine(model);\n\n if (findUnique) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${findUnique}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}FindUnique`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} where: ${modelName}WhereUniqueInputObjectSchema })`\n )}`\n );\n }\n\n if (findFirst) {\n const imports = [\n selectImport,\n includeImport,\n orderByImport,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`,\n `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${findFirst}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}FindFirst`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} ${orderByZodSchemaLine} where: ${modelName}WhereInputObjectSchema.optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.array(${modelName}ScalarFieldEnumSchema).optional() })`\n )}`\n );\n }\n\n if (findMany) {\n const imports = [\n selectImport,\n includeImport,\n orderByImport,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`,\n `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${findMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}FindMany`,\n `z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} ${orderByZodSchemaLine} where: ${modelName}WhereInputObjectSchema.optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.array(${modelName}ScalarFieldEnumSchema).optional() })`\n )}`\n );\n }\n\n if (createOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}CreateInputObjectSchema } from './objects/${modelName}CreateInput.schema'`,\n `import { ${modelName}UncheckedCreateInputObjectSchema } from './objects/${modelName}UncheckedCreateInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${createOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}CreateOne`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} data: z.union([${modelName}CreateInputObjectSchema, ${modelName}UncheckedCreateInputObjectSchema]) })`\n )}`\n );\n }\n\n if (createMany) {\n const imports = [\n `import { ${modelName}CreateManyInputObjectSchema } from './objects/${modelName}CreateManyInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${createMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}CreateMany`,\n `z.object({ data: z.union([ ${modelName}CreateManyInputObjectSchema, z.array(${modelName}CreateManyInputObjectSchema) ]), ${\n Transformer.provider === \"mongodb\" ||\n Transformer.provider === \"sqlserver\"\n ? \"\"\n : \"skipDuplicates: z.boolean().optional()\"\n } })`\n )}`\n );\n }\n\n if (createManyAndReturn) {\n const imports = [\n `import { ${modelName}CreateManyAndReturnInputObjectSchema } from './objects/${modelName}CreateManyAndReturnInput.schema'`\n ];\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/${createManyAndReturn}.schema.ts`\n ),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}CreateManyAndReturn`,\n `z.object({ data: z.union([ ${modelName}CreateManyAndReturnInputObjectSchema, z.array(${modelName}CreateManyAndReturnInputObjectSchema) ]), ${\n Transformer.provider === \"mongodb\" ||\n Transformer.provider === \"sqlserver\"\n ? \"\"\n : \"skipDuplicates: z.boolean().optional()\"\n } })`\n )}`\n );\n }\n\n if (deleteOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${deleteOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}DeleteOne`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} where: ${modelName}WhereUniqueInputObjectSchema })`\n )}`\n );\n }\n\n if (deleteMany) {\n const imports = [\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${deleteMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}DeleteMany`,\n `z.object({ where: ${modelName}WhereInputObjectSchema.optional() })`\n )}`\n );\n }\n\n if (updateOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}UpdateInputObjectSchema } from './objects/${modelName}UpdateInput.schema'`,\n `import { ${modelName}UncheckedUpdateInputObjectSchema } from './objects/${modelName}UncheckedUpdateInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${updateOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}UpdateOne`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} data: z.union([${modelName}UpdateInputObjectSchema, ${modelName}UncheckedUpdateInputObjectSchema]), where: ${modelName}WhereUniqueInputObjectSchema })`\n )}`\n );\n }\n\n if (updateMany) {\n const imports = [\n `import { ${modelName}UpdateManyMutationInputObjectSchema } from './objects/${modelName}UpdateManyMutationInput.schema'`,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${updateMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}UpdateMany`,\n `z.object({ data: ${modelName}UpdateManyMutationInputObjectSchema, where: ${modelName}WhereInputObjectSchema.optional() })`\n )}`\n );\n }\n\n if (updateManyAndReturn) {\n const imports = [\n `import { ${modelName}UpdateManyAndReturnInputObjectSchema } from './objects/${modelName}UpdateManyAndReturnInput.schema'`\n ];\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/${updateManyAndReturn}.schema.ts`\n ),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}UpdateManyAndReturn`,\n `z.object({ data: z.union([ ${modelName}UpdateManyAndReturnInputObjectSchema, z.array(${modelName}UpdateManyAndReturnInputObjectSchema) ]), ${\n Transformer.provider === \"mongodb\" ||\n Transformer.provider === \"sqlserver\"\n ? \"\"\n : \"skipDuplicates: z.boolean().optional()\"\n } })`\n )}`\n );\n }\n\n if (upsertOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`,\n `import { ${modelName}CreateInputObjectSchema } from './objects/${modelName}CreateInput.schema'`,\n `import { ${modelName}UncheckedCreateInputObjectSchema } from './objects/${modelName}UncheckedCreateInput.schema'`,\n `import { ${modelName}UpdateInputObjectSchema } from './objects/${modelName}UpdateInput.schema'`,\n `import { ${modelName}UncheckedUpdateInputObjectSchema } from './objects/${modelName}UncheckedUpdateInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${upsertOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}Upsert`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} where: ${modelName}WhereUniqueInputObjectSchema, create: z.union([ ${modelName}CreateInputObjectSchema, ${modelName}UncheckedCreateInputObjectSchema ]), update: z.union([ ${modelName}UpdateInputObjectSchema, ${modelName}UncheckedUpdateInputObjectSchema ]) })`\n )}`\n );\n }\n\n if (aggregate) {\n const imports = [\n orderByImport,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n const aggregateOperations = [];\n if (this.aggregateOperationSupport[modelName]) {\n if (this.aggregateOperationSupport[modelName].count) {\n imports.push(\n `import { ${modelName}CountAggregateInputObjectSchema } from './objects/${modelName}CountAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_count: z.union([ z.literal(true), ${modelName}CountAggregateInputObjectSchema ]).optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].min) {\n imports.push(\n `import { ${modelName}MinAggregateInputObjectSchema } from './objects/${modelName}MinAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_min: ${modelName}MinAggregateInputObjectSchema.optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].max) {\n imports.push(\n `import { ${modelName}MaxAggregateInputObjectSchema } from './objects/${modelName}MaxAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_max: ${modelName}MaxAggregateInputObjectSchema.optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].avg) {\n imports.push(\n `import { ${modelName}AvgAggregateInputObjectSchema } from './objects/${modelName}AvgAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_avg: ${modelName}AvgAggregateInputObjectSchema.optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].sum) {\n imports.push(\n `import { ${modelName}SumAggregateInputObjectSchema } from './objects/${modelName}SumAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_sum: ${modelName}SumAggregateInputObjectSchema.optional()`\n );\n }\n }\n\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${aggregate}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}Aggregate`,\n `z.object({ ${orderByZodSchemaLine} where: ${modelName}WhereInputObjectSchema.optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), ${aggregateOperations.join(\n \", \"\n )} })`\n )}`\n );\n }\n\n if (groupBy) {\n const imports = [\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}OrderByWithAggregationInputObjectSchema } from './objects/${modelName}OrderByWithAggregationInput.schema'`,\n `import { ${modelName}ScalarWhereWithAggregatesInputObjectSchema } from './objects/${modelName}ScalarWhereWithAggregatesInput.schema'`,\n `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${groupBy}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}GroupBy`,\n `z.object({ where: ${modelName}WhereInputObjectSchema.optional(), orderBy: z.union([${modelName}OrderByWithAggregationInputObjectSchema, ${modelName}OrderByWithAggregationInputObjectSchema.array()]).optional(), having: ${modelName}ScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(${modelName}ScalarFieldEnumSchema) })`\n )}`\n );\n }\n }\n }\n\n generateImportStatements(imports: (string | undefined)[]) {\n let generatedImports = this.generateImportZodStatement();\n generatedImports +=\n imports?.filter(importItem => !!importItem).join(\";\\r\\n\") ?? \"\";\n generatedImports += \"\\n\\n\";\n return generatedImports;\n }\n\n resolveSelectIncludeImportAndZodSchemaLine(model: PrismaDMMF.Model) {\n const { name: modelName } = model;\n\n const hasRelationToAnotherModel = checkModelHasModelRelation(model);\n\n const selectImport = Transformer.isGenerateSelect\n ? `import { ${lowerCaseFirst(modelName)}SelectObjectSchema } from './objects/${lowerCaseFirst(modelName)}Select.schema'`\n : \"\";\n\n const includeImport =\n Transformer.isGenerateInclude && hasRelationToAnotherModel\n ? `import { ${lowerCaseFirst(modelName)}IncludeObjectSchema } from './objects/${lowerCaseFirst(modelName)}Include.schema'`\n : \"\";\n\n let selectZodSchemaLine = \"\";\n let includeZodSchemaLine = \"\";\n let selectZodSchemaLineLazy = \"\";\n let includeZodSchemaLineLazy = \"\";\n\n if (Transformer.isGenerateSelect) {\n const zodSelectObjectSchema = `${lowerCaseFirst(modelName)}SelectObjectSchema.optional()`;\n selectZodSchemaLine = `select: ${zodSelectObjectSchema},`;\n selectZodSchemaLineLazy = `select: z.lazy(() => ${zodSelectObjectSchema}),`;\n }\n\n if (Transformer.isGenerateInclude && hasRelationToAnotherModel) {\n const zodIncludeObjectSchema = `${lowerCaseFirst(modelName)}IncludeObjectSchema.optional()`;\n includeZodSchemaLine = `include: ${zodIncludeObjectSchema},`;\n includeZodSchemaLineLazy = `include: z.lazy(() => ${zodIncludeObjectSchema}),`;\n }\n\n return {\n selectImport,\n includeImport,\n selectZodSchemaLine,\n includeZodSchemaLine,\n selectZodSchemaLineLazy,\n includeZodSchemaLineLazy\n };\n }\n\n resolveOrderByWithRelationImportAndZodSchemaLine(model: PrismaDMMF.Model) {\n const { name: modelName } = model;\n let modelOrderBy = \"\";\n\n if (\n [\"postgresql\", \"mysql\"].includes(Transformer.provider) &&\n Transformer.previewFeatures?.includes(\"fullTextSearch\")\n ) {\n modelOrderBy = `${lowerCaseFirst(modelName)}OrderByWithRelationAndSearchRelevanceInput`;\n } else {\n modelOrderBy = `${lowerCaseFirst(modelName)}OrderByWithRelationInput`;\n }\n\n const orderByImport = `import { ${modelOrderBy}ObjectSchema } from './objects/${modelOrderBy}.schema'`;\n const orderByZodSchemaLine = `orderBy: z.union([${modelOrderBy}ObjectSchema, ${modelOrderBy}ObjectSchema.array()]).optional(),`;\n\n return { orderByImport, orderByZodSchemaLine };\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transformer.mjs","names":["line: string","prismaClientImportPath: string","modelQueryTypeSuffixToQueryName: Record<string, string>"],"sources":["../../src/zod/transformer.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type {\n ConnectorType,\n DMMF as PrismaDMMF\n} from \"@prisma/generator-helper\";\nimport { lowerCaseFirst } from \"@stryke/string-format/lower-case-first\";\nimport { upperCaseFirst } from \"@stryke/string-format/upper-case-first\";\nimport path from \"node:path\";\nimport type {\n AggregateOperationSupport,\n TransformerParams,\n Writeable\n} from \"../types\";\nimport { writeFileSafely, writeIndexFile } from \"../utils/write-file-safely\";\nimport { isAggregateInputType } from \"./aggregate-helpers\";\nimport { checkModelHasModelRelation, findModelByName } from \"./model-helpers\";\nimport { isMongodbRawOp } from \"./mongodb-helpers\";\n\nexport default class Transformer {\n name: string;\n\n fields: Writeable<PrismaDMMF.SchemaArg[]>;\n\n schemaImports = new Set<string>();\n\n models: Writeable<PrismaDMMF.Model[]>;\n\n modelOperations: Writeable<PrismaDMMF.ModelMapping[]>;\n\n aggregateOperationSupport: AggregateOperationSupport;\n\n enumTypes: Writeable<PrismaDMMF.SchemaEnum[]>;\n\n static enumNames: string[] = [];\n\n static rawOpsMap: { [name: string]: string } = {};\n\n static provider: ConnectorType;\n\n static previewFeatures: string[] | undefined;\n\n private static outputPath: string = \"./generated\";\n\n private hasJson = false;\n\n private static prismaClientOutputPath: string = \"@prisma/client\";\n\n private static isCustomPrismaClientOutputPath: boolean = false;\n\n private static isGenerateSelect: boolean = true;\n\n private static isGenerateInclude: boolean = true;\n\n constructor(params: Writeable<TransformerParams>) {\n this.name = params.name ?? \"\";\n this.fields = params.fields ?? [];\n this.models = params.models ?? [];\n this.modelOperations = params.modelOperations ?? [];\n this.aggregateOperationSupport = params.aggregateOperationSupport ?? {};\n this.enumTypes = params.enumTypes ?? [];\n }\n\n static setOutputPath(outPath: string) {\n this.outputPath = outPath;\n }\n\n static setIsGenerateSelect(isGenerateSelect: boolean) {\n this.isGenerateSelect = isGenerateSelect;\n }\n\n static setIsGenerateInclude(isGenerateInclude: boolean) {\n this.isGenerateInclude = isGenerateInclude;\n }\n\n static getOutputPath() {\n return this.outputPath;\n }\n\n static setPrismaClientOutputPath(prismaClientCustomPath: string) {\n this.prismaClientOutputPath = prismaClientCustomPath;\n this.isCustomPrismaClientOutputPath =\n prismaClientCustomPath !== \"@prisma/client\";\n }\n\n static async generateIndex() {\n const indexPath = path.join(Transformer.outputPath, \"schemas/index.ts\");\n await writeIndexFile(indexPath);\n }\n\n async generateEnumSchemas() {\n for (const enumType of this.enumTypes) {\n const { name, values } = enumType;\n\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/enums/${lowerCaseFirst(name)}.schema.ts`\n ),\n `${this.generateImportZodStatement()}\\n${this.generateExportSchemaStatement(\n `${lowerCaseFirst(name)}`,\n `z.enum(${JSON.stringify(values)})`\n )}`\n );\n }\n }\n\n generateImportZodStatement() {\n return \"import { z } from 'zod';\\n\";\n }\n\n generateExportSchemaStatement(name: string, schema: string) {\n return `export const ${lowerCaseFirst(name)}Schema = ${schema}`;\n }\n\n async generateObjectSchema() {\n const zodObjectSchemaFields = this.generateObjectSchemaFields();\n const objectSchema = this.prepareObjectSchema(zodObjectSchemaFields);\n const objectSchemaName = this.resolveObjectSchemaName();\n\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/objects/${lowerCaseFirst(objectSchemaName)}.schema.ts`\n ),\n objectSchema\n );\n }\n\n generateObjectSchemaFields() {\n const zodObjectSchemaFields = this.fields\n .map(field => this.generateObjectSchemaField(field))\n .flatMap(item => item)\n .map(item => {\n const [zodStringWithMainType, field, skipValidators] = item;\n\n const value = skipValidators\n ? zodStringWithMainType\n : this.generateFieldValidators(zodStringWithMainType, field);\n\n return value.trim();\n });\n\n return zodObjectSchemaFields;\n }\n\n generateObjectSchemaField(\n field: PrismaDMMF.SchemaArg\n ): [string, PrismaDMMF.SchemaArg, boolean][] {\n const lines = field.inputTypes;\n\n if (lines.length === 0) {\n return [];\n }\n\n let alternatives = lines.reduce<string[]>((result, inputType) => {\n if (inputType.type === \"String\") {\n result.push(this.wrapWithZodValidators(\"z.string()\", field));\n } else if (\n inputType.type === \"Int\" ||\n inputType.type === \"Float\" ||\n inputType.type === \"Decimal\"\n ) {\n result.push(this.wrapWithZodValidators(\"z.number()\", field));\n } else if (inputType.type === \"BigInt\") {\n result.push(this.wrapWithZodValidators(\"z.bigint()\", field));\n } else if (inputType.type === \"Boolean\") {\n result.push(this.wrapWithZodValidators(\"z.boolean()\", field));\n } else if (inputType.type === \"DateTime\") {\n result.push(this.wrapWithZodValidators(\"z.coerce.date()\", field));\n } else if (inputType.type === \"Json\") {\n this.hasJson = true;\n\n result.push(this.wrapWithZodValidators(\"jsonSchema\", field));\n } else if (inputType.type === \"True\") {\n result.push(this.wrapWithZodValidators(\"z.literal(true)\", field));\n } else if (inputType.type === \"Bytes\") {\n result.push(this.wrapWithZodValidators(\"z.instanceof(Buffer)\", field));\n } else if (!inputType.type.endsWith(\"FieldRefInput\")) {\n const isEnum = inputType.location === \"enumTypes\";\n\n if (inputType.namespace === \"prisma\" || isEnum) {\n if (\n inputType.type !== this.name &&\n typeof inputType.type === \"string\"\n ) {\n this.addSchemaImport(inputType.type);\n }\n\n result.push(\n this.generatePrismaStringLine(field, inputType, lines.length)\n );\n }\n }\n\n return result;\n }, []);\n\n if (alternatives.length === 0) {\n return [];\n }\n\n if (alternatives.length > 1) {\n alternatives = alternatives.map(alter =>\n alter.replace(\".optional()\", \"\")\n );\n }\n\n const fieldName = alternatives.some(alt => alt.includes(\":\"))\n ? \"\"\n : ` ${field.name}:`;\n\n const opt = !field.isRequired ? \".optional()\" : \"\";\n\n let resString =\n alternatives.length === 1\n ? alternatives.join(\",\\r\\n\")\n : `z.union([${alternatives.join(\",\\r\\n\")}])${opt}`;\n\n if (field.isNullable) {\n resString += \".nullable()\";\n }\n\n return [[` ${fieldName} ${resString} `, field, true]];\n }\n\n wrapWithZodValidators(mainValidator: string, field: PrismaDMMF.SchemaArg) {\n let line: string = \"\";\n line = mainValidator;\n\n if (field.inputTypes.some(inputType => inputType.isList)) {\n line += \".array()\";\n }\n\n if (!field.isRequired) {\n line += \".optional()\";\n }\n\n return line;\n }\n\n addSchemaImport(name: string) {\n this.schemaImports.add(name);\n }\n\n generatePrismaStringLine(\n field: PrismaDMMF.SchemaArg,\n inputType: PrismaDMMF.InputTypeRef,\n inputsLength: number\n ) {\n // if (field.inputTypes.length === 0 || !field.inputTypes[0]) {\n // return \"\";\n // }\n\n // const inputType = field.inputTypes[0];\n\n const isEnum = inputType.location === \"enumTypes\";\n\n const inputTypeString = inputType.type;\n const { isModelQueryType, modelName, queryName } =\n this.checkIsModelQueryType(inputTypeString);\n\n const objectSchemaLine = isModelQueryType\n ? this.resolveModelQuerySchemaName(modelName!, queryName!)\n : `${inputTypeString}ObjectSchema`;\n const enumSchemaLine = `${inputTypeString}Schema`;\n\n const schema =\n inputType.type === this.name\n ? objectSchemaLine\n : isEnum\n ? enumSchemaLine\n : objectSchemaLine;\n const arr = inputType.isList ? \".array()\" : \"\";\n const opt = !field.isRequired ? \".optional()\" : \"\";\n\n return inputsLength === 1\n ? ` ${field.name}: z.lazy(() => ${lowerCaseFirst(schema)})${arr}${opt}`\n : `z.lazy(() => ${lowerCaseFirst(schema)})${arr}${opt}`;\n }\n\n generateFieldValidators(\n zodStringWithMainType: string,\n field: PrismaDMMF.SchemaArg\n ) {\n const { isRequired, isNullable } = field;\n\n if (!isRequired) {\n zodStringWithMainType += \".optional()\";\n }\n\n if (isNullable) {\n zodStringWithMainType += \".nullable()\";\n }\n\n return zodStringWithMainType;\n }\n\n prepareObjectSchema(zodObjectSchemaFields: string[]) {\n const objectSchema = `${this.generateExportObjectSchemaStatement(\n this.addFinalWrappers({ zodStringFields: zodObjectSchemaFields })\n )}\\n`;\n\n const prismaImportStatement = this.generateImportPrismaStatement();\n\n const json = this.generateJsonSchemaImplementation();\n\n return `${this.generateObjectSchemaImportStatements()}${prismaImportStatement}${json}${objectSchema}`;\n }\n\n generateExportObjectSchemaStatement(schema: string) {\n let name = this.name;\n let exportName = this.name;\n if (Transformer.provider === \"mongodb\") {\n if (isMongodbRawOp(name)) {\n name = Transformer.rawOpsMap[name]!;\n exportName = name.replace(\"Args\", \"\");\n }\n }\n\n if (isAggregateInputType(name)) {\n name = `${name}Type`;\n }\n const end = `export const ${lowerCaseFirst(exportName)}ObjectSchema = schema`;\n\n return `const schema: z.ZodType<Prisma.${name}> = ${schema};\\n\\n ${end}`;\n }\n\n addFinalWrappers({ zodStringFields }: { zodStringFields: string[] }) {\n const fields = [...zodStringFields];\n\n return `${this.wrapWithZodObject(fields)}.strict()`;\n }\n\n generateImportPrismaStatement() {\n let prismaClientImportPath: string;\n if (Transformer.isCustomPrismaClientOutputPath) {\n /**\n * If a custom location was designated for the prisma client, we need to figure out the\n * relative path from \\{outputPath\\}/schemas/objects to \\{prismaClientCustomPath\\}\n */\n const fromPath = path.join(Transformer.outputPath, \"schemas\", \"objects\");\n const toPath = Transformer.prismaClientOutputPath;\n const relativePathFromOutputToPrismaClient = path\n .relative(fromPath, toPath)\n .split(path.sep)\n .join(path.posix.sep);\n prismaClientImportPath = relativePathFromOutputToPrismaClient;\n } else {\n /**\n * If the default output path for prisma client (\\@prisma/client) is being used, we can import from it directly\n * without having to resolve a relative path\n */\n prismaClientImportPath = Transformer.prismaClientOutputPath;\n }\n return `import type { Prisma } from '${prismaClientImportPath}';\\n\\n`;\n }\n\n generateJsonSchemaImplementation() {\n let jsonSchemaImplementation = \"\";\n\n if (this.hasJson) {\n jsonSchemaImplementation += `\\n`;\n jsonSchemaImplementation += `const literalSchema = z.union([z.string(), z.number(), z.boolean()]);\\n`;\n jsonSchemaImplementation += `const jsonSchema: z.ZodType<Prisma.InputJsonValue> = z.lazy(() =>\\n`;\n jsonSchemaImplementation += ` z.union([literalSchema, z.array(jsonSchema.nullable()), z.record(jsonSchema.nullable())])\\n`;\n jsonSchemaImplementation += `);\\n\\n`;\n }\n\n return jsonSchemaImplementation;\n }\n\n generateObjectSchemaImportStatements() {\n let generatedImports = this.generateImportZodStatement();\n generatedImports += this.generateSchemaImports();\n generatedImports += \"\\n\\n\";\n return generatedImports;\n }\n\n generateSchemaImports() {\n return [...this.schemaImports]\n .map(name => {\n const { isModelQueryType, modelName, queryName } =\n this.checkIsModelQueryType(name);\n if (isModelQueryType) {\n return `import { ${this.resolveModelQuerySchemaName(\n modelName!,\n queryName!\n )} } from '../${queryName}${modelName}.schema'`;\n } else if (Transformer.enumNames.includes(name)) {\n return `import { ${lowerCaseFirst(name)}Schema } from '../enums/${lowerCaseFirst(name)}.schema'`;\n } else {\n return `import { ${lowerCaseFirst(name)}ObjectSchema } from './${lowerCaseFirst(name)}.schema'`;\n }\n })\n .join(\";\\r\\n\");\n }\n\n checkIsModelQueryType(type: string) {\n const modelQueryTypeSuffixToQueryName: Record<string, string> = {\n FindManyArgs: \"findMany\"\n };\n for (const modelQueryType of [\"FindManyArgs\"]) {\n if (type.includes(modelQueryType)) {\n const modelQueryTypeSuffixIndex = type.indexOf(modelQueryType);\n\n return {\n isModelQueryType: true,\n modelName: type.substring(0, modelQueryTypeSuffixIndex),\n queryName: modelQueryTypeSuffixToQueryName[modelQueryType]\n };\n }\n }\n return { isModelQueryType: false };\n }\n\n resolveModelQuerySchemaName(modelName: string, queryName: string) {\n const modelNameUncapitalized = lowerCaseFirst(modelName);\n const queryNameCapitalized = upperCaseFirst(queryName);\n\n return `${modelNameUncapitalized}${queryNameCapitalized}Schema`;\n }\n\n wrapWithZodUnion(zodStringFields: string[]) {\n let wrapped = \"\";\n\n wrapped += \"z.union([\";\n wrapped += \"\\n\";\n wrapped += ` ${zodStringFields.join(\",\")}`;\n wrapped += \"\\n\";\n wrapped += \"])\";\n return wrapped;\n }\n\n wrapWithZodObject(zodStringFields: string | string[]) {\n let wrapped = \"\";\n\n wrapped += \"z.object({\";\n wrapped += \"\\n\";\n wrapped += ` ${typeof zodStringFields === \"string\" ? zodStringFields : zodStringFields.join(\",\\n \")}`;\n wrapped += \"\\n\";\n wrapped += \"})\";\n return wrapped;\n }\n\n resolveObjectSchemaName() {\n let name = this.name;\n let exportName = this.name;\n if (isMongodbRawOp(name)) {\n name = Transformer.rawOpsMap[name]!;\n exportName = name.replace(\"Args\", \"\");\n }\n\n return lowerCaseFirst(exportName);\n }\n\n async generateModelSchemas() {\n for (const modelOperation of this.modelOperations) {\n const {\n findUnique,\n findFirst,\n findMany,\n // @ts-ignore\n createOne,\n createMany,\n createManyAndReturn,\n // @ts-ignore\n deleteOne,\n // @ts-ignore\n updateOne,\n deleteMany,\n updateMany,\n updateManyAndReturn,\n // @ts-ignore\n upsertOne,\n aggregate,\n groupBy\n } = modelOperation;\n\n const model = findModelByName(this.models, modelOperation.model)!;\n const modelName = lowerCaseFirst(modelOperation.model)!;\n\n const {\n selectImport,\n includeImport,\n selectZodSchemaLine,\n includeZodSchemaLine,\n selectZodSchemaLineLazy,\n includeZodSchemaLineLazy\n } = this.resolveSelectIncludeImportAndZodSchemaLine(model);\n\n const { orderByImport, orderByZodSchemaLine } =\n this.resolveOrderByWithRelationImportAndZodSchemaLine(model);\n\n if (findUnique) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${findUnique}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}FindUnique`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} where: ${modelName}WhereUniqueInputObjectSchema })`\n )}`\n );\n }\n\n if (findFirst) {\n const imports = [\n selectImport,\n includeImport,\n orderByImport,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`,\n `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${findFirst}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}FindFirst`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} ${orderByZodSchemaLine} where: ${modelName}WhereInputObjectSchema.optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.array(${modelName}ScalarFieldEnumSchema).optional() })`\n )}`\n );\n }\n\n if (findMany) {\n const imports = [\n selectImport,\n includeImport,\n orderByImport,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`,\n `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${findMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}FindMany`,\n `z.object({ ${selectZodSchemaLineLazy} ${includeZodSchemaLineLazy} ${orderByZodSchemaLine} where: ${modelName}WhereInputObjectSchema.optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.array(${modelName}ScalarFieldEnumSchema).optional() })`\n )}`\n );\n }\n\n if (createOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}CreateInputObjectSchema } from './objects/${modelName}CreateInput.schema'`,\n `import { ${modelName}UncheckedCreateInputObjectSchema } from './objects/${modelName}UncheckedCreateInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${createOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}CreateOne`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} data: z.union([${modelName}CreateInputObjectSchema, ${modelName}UncheckedCreateInputObjectSchema]) })`\n )}`\n );\n }\n\n if (createMany) {\n const imports = [\n `import { ${modelName}CreateManyInputObjectSchema } from './objects/${modelName}CreateManyInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${createMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}CreateMany`,\n `z.object({ data: z.union([ ${modelName}CreateManyInputObjectSchema, z.array(${modelName}CreateManyInputObjectSchema) ]), ${\n Transformer.provider === \"mongodb\" ||\n Transformer.provider === \"sqlserver\"\n ? \"\"\n : \"skipDuplicates: z.boolean().optional()\"\n } })`\n )}`\n );\n }\n\n if (createManyAndReturn) {\n const imports = [\n `import { ${modelName}CreateManyAndReturnInputObjectSchema } from './objects/${modelName}CreateManyAndReturnInput.schema'`\n ];\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/${createManyAndReturn}.schema.ts`\n ),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}CreateManyAndReturn`,\n `z.object({ data: z.union([ ${modelName}CreateManyAndReturnInputObjectSchema, z.array(${modelName}CreateManyAndReturnInputObjectSchema) ]), ${\n Transformer.provider === \"mongodb\" ||\n Transformer.provider === \"sqlserver\"\n ? \"\"\n : \"skipDuplicates: z.boolean().optional()\"\n } })`\n )}`\n );\n }\n\n if (deleteOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${deleteOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}DeleteOne`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} where: ${modelName}WhereUniqueInputObjectSchema })`\n )}`\n );\n }\n\n if (deleteMany) {\n const imports = [\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${deleteMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}DeleteMany`,\n `z.object({ where: ${modelName}WhereInputObjectSchema.optional() })`\n )}`\n );\n }\n\n if (updateOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}UpdateInputObjectSchema } from './objects/${modelName}UpdateInput.schema'`,\n `import { ${modelName}UncheckedUpdateInputObjectSchema } from './objects/${modelName}UncheckedUpdateInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${updateOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}UpdateOne`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} data: z.union([${modelName}UpdateInputObjectSchema, ${modelName}UncheckedUpdateInputObjectSchema]), where: ${modelName}WhereUniqueInputObjectSchema })`\n )}`\n );\n }\n\n if (updateMany) {\n const imports = [\n `import { ${modelName}UpdateManyMutationInputObjectSchema } from './objects/${modelName}UpdateManyMutationInput.schema'`,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${updateMany}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}UpdateMany`,\n `z.object({ data: ${modelName}UpdateManyMutationInputObjectSchema, where: ${modelName}WhereInputObjectSchema.optional() })`\n )}`\n );\n }\n\n if (updateManyAndReturn) {\n const imports = [\n `import { ${modelName}UpdateManyAndReturnInputObjectSchema } from './objects/${modelName}UpdateManyAndReturnInput.schema'`\n ];\n await writeFileSafely(\n path.join(\n Transformer.outputPath,\n `schemas/${updateManyAndReturn}.schema.ts`\n ),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}UpdateManyAndReturn`,\n `z.object({ data: z.union([ ${modelName}UpdateManyAndReturnInputObjectSchema, z.array(${modelName}UpdateManyAndReturnInputObjectSchema) ]), ${\n Transformer.provider === \"mongodb\" ||\n Transformer.provider === \"sqlserver\"\n ? \"\"\n : \"skipDuplicates: z.boolean().optional()\"\n } })`\n )}`\n );\n }\n\n if (upsertOne) {\n const imports = [\n selectImport,\n includeImport,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`,\n `import { ${modelName}CreateInputObjectSchema } from './objects/${modelName}CreateInput.schema'`,\n `import { ${modelName}UncheckedCreateInputObjectSchema } from './objects/${modelName}UncheckedCreateInput.schema'`,\n `import { ${modelName}UpdateInputObjectSchema } from './objects/${modelName}UpdateInput.schema'`,\n `import { ${modelName}UncheckedUpdateInputObjectSchema } from './objects/${modelName}UncheckedUpdateInput.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${upsertOne}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}Upsert`,\n `z.object({ ${selectZodSchemaLine} ${includeZodSchemaLine} where: ${modelName}WhereUniqueInputObjectSchema, create: z.union([ ${modelName}CreateInputObjectSchema, ${modelName}UncheckedCreateInputObjectSchema ]), update: z.union([ ${modelName}UpdateInputObjectSchema, ${modelName}UncheckedUpdateInputObjectSchema ]) })`\n )}`\n );\n }\n\n if (aggregate) {\n const imports = [\n orderByImport,\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}WhereUniqueInputObjectSchema } from './objects/${modelName}WhereUniqueInput.schema'`\n ];\n const aggregateOperations = [];\n if (this.aggregateOperationSupport[modelName]) {\n if (this.aggregateOperationSupport[modelName].count) {\n imports.push(\n `import { ${modelName}CountAggregateInputObjectSchema } from './objects/${modelName}CountAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_count: z.union([ z.literal(true), ${modelName}CountAggregateInputObjectSchema ]).optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].min) {\n imports.push(\n `import { ${modelName}MinAggregateInputObjectSchema } from './objects/${modelName}MinAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_min: ${modelName}MinAggregateInputObjectSchema.optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].max) {\n imports.push(\n `import { ${modelName}MaxAggregateInputObjectSchema } from './objects/${modelName}MaxAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_max: ${modelName}MaxAggregateInputObjectSchema.optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].avg) {\n imports.push(\n `import { ${modelName}AvgAggregateInputObjectSchema } from './objects/${modelName}AvgAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_avg: ${modelName}AvgAggregateInputObjectSchema.optional()`\n );\n }\n if (this.aggregateOperationSupport[modelName].sum) {\n imports.push(\n `import { ${modelName}SumAggregateInputObjectSchema } from './objects/${modelName}SumAggregateInput.schema'`\n );\n aggregateOperations.push(\n `_sum: ${modelName}SumAggregateInputObjectSchema.optional()`\n );\n }\n }\n\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${aggregate}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}Aggregate`,\n `z.object({ ${orderByZodSchemaLine} where: ${modelName}WhereInputObjectSchema.optional(), cursor: ${modelName}WhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), ${aggregateOperations.join(\n \", \"\n )} })`\n )}`\n );\n }\n\n if (groupBy) {\n const imports = [\n `import { ${modelName}WhereInputObjectSchema } from './objects/${modelName}WhereInput.schema'`,\n `import { ${modelName}OrderByWithAggregationInputObjectSchema } from './objects/${modelName}OrderByWithAggregationInput.schema'`,\n `import { ${modelName}ScalarWhereWithAggregatesInputObjectSchema } from './objects/${modelName}ScalarWhereWithAggregatesInput.schema'`,\n `import { ${modelName}ScalarFieldEnumSchema } from './enums/${modelName}ScalarFieldEnum.schema'`\n ];\n await writeFileSafely(\n path.join(Transformer.outputPath, `schemas/${groupBy}.schema.ts`),\n `${this.generateImportStatements(\n imports\n )}${this.generateExportSchemaStatement(\n `${modelName}GroupBy`,\n `z.object({ where: ${modelName}WhereInputObjectSchema.optional(), orderBy: z.union([${modelName}OrderByWithAggregationInputObjectSchema, ${modelName}OrderByWithAggregationInputObjectSchema.array()]).optional(), having: ${modelName}ScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(${modelName}ScalarFieldEnumSchema) })`\n )}`\n );\n }\n }\n }\n\n generateImportStatements(imports: (string | undefined)[]) {\n let generatedImports = this.generateImportZodStatement();\n generatedImports +=\n imports?.filter(importItem => !!importItem).join(\";\\r\\n\") ?? \"\";\n generatedImports += \"\\n\\n\";\n return generatedImports;\n }\n\n resolveSelectIncludeImportAndZodSchemaLine(model: PrismaDMMF.Model) {\n const { name: modelName } = model;\n\n const hasRelationToAnotherModel = checkModelHasModelRelation(model);\n\n const selectImport = Transformer.isGenerateSelect\n ? `import { ${lowerCaseFirst(modelName)}SelectObjectSchema } from './objects/${lowerCaseFirst(modelName)}Select.schema'`\n : \"\";\n\n const includeImport =\n Transformer.isGenerateInclude && hasRelationToAnotherModel\n ? `import { ${lowerCaseFirst(modelName)}IncludeObjectSchema } from './objects/${lowerCaseFirst(modelName)}Include.schema'`\n : \"\";\n\n let selectZodSchemaLine = \"\";\n let includeZodSchemaLine = \"\";\n let selectZodSchemaLineLazy = \"\";\n let includeZodSchemaLineLazy = \"\";\n\n if (Transformer.isGenerateSelect) {\n const zodSelectObjectSchema = `${lowerCaseFirst(modelName)}SelectObjectSchema.optional()`;\n selectZodSchemaLine = `select: ${zodSelectObjectSchema},`;\n selectZodSchemaLineLazy = `select: z.lazy(() => ${zodSelectObjectSchema}),`;\n }\n\n if (Transformer.isGenerateInclude && hasRelationToAnotherModel) {\n const zodIncludeObjectSchema = `${lowerCaseFirst(modelName)}IncludeObjectSchema.optional()`;\n includeZodSchemaLine = `include: ${zodIncludeObjectSchema},`;\n includeZodSchemaLineLazy = `include: z.lazy(() => ${zodIncludeObjectSchema}),`;\n }\n\n return {\n selectImport,\n includeImport,\n selectZodSchemaLine,\n includeZodSchemaLine,\n selectZodSchemaLineLazy,\n includeZodSchemaLineLazy\n };\n }\n\n resolveOrderByWithRelationImportAndZodSchemaLine(model: PrismaDMMF.Model) {\n const { name: modelName } = model;\n let modelOrderBy = \"\";\n\n if (\n [\"postgresql\", \"mysql\"].includes(Transformer.provider) &&\n Transformer.previewFeatures?.includes(\"fullTextSearch\")\n ) {\n modelOrderBy = `${lowerCaseFirst(modelName)}OrderByWithRelationAndSearchRelevanceInput`;\n } else {\n modelOrderBy = `${lowerCaseFirst(modelName)}OrderByWithRelationInput`;\n }\n\n const orderByImport = `import { ${modelOrderBy}ObjectSchema } from './objects/${modelOrderBy}.schema'`;\n const orderByZodSchemaLine = `orderBy: z.union([${modelOrderBy}ObjectSchema, ${modelOrderBy}ObjectSchema.array()]).optional(),`;\n\n return { orderByImport, orderByZodSchemaLine };\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/zod/whereUniqueInput-helpers.ts
|
|
3
|
+
function changeOptionalToRequiredFields(inputObjectTypes) {
|
|
4
|
+
inputObjectTypes.map((item) => {
|
|
5
|
+
if (item.name.includes("WhereUniqueInput") && item.constraints.fields?.length > 0) item.fields = item.fields.map((subItem) => {
|
|
6
|
+
if (item.constraints.fields?.includes(subItem.name)) {
|
|
7
|
+
subItem.isRequired = true;
|
|
8
|
+
return subItem;
|
|
9
|
+
}
|
|
10
|
+
return subItem;
|
|
11
|
+
});
|
|
12
|
+
return item;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
exports.changeOptionalToRequiredFields = changeOptionalToRequiredFields;
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/zod/whereUniqueInput-helpers.ts
|
|
2
|
+
function changeOptionalToRequiredFields(inputObjectTypes) {
|
|
3
|
+
inputObjectTypes.map((item) => {
|
|
4
|
+
if (item.name.includes("WhereUniqueInput") && item.constraints.fields?.length > 0) item.fields = item.fields.map((subItem) => {
|
|
5
|
+
if (item.constraints.fields?.includes(subItem.name)) {
|
|
6
|
+
subItem.isRequired = true;
|
|
7
|
+
return subItem;
|
|
8
|
+
}
|
|
9
|
+
return subItem;
|
|
10
|
+
});
|
|
11
|
+
return item;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { changeOptionalToRequiredFields };
|
|
2
17
|
//# sourceMappingURL=whereUniqueInput-helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whereUniqueInput-helpers.mjs","names":[],"sources":["../../src/zod/whereUniqueInput-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport type { ArrayValues } from \"@stryke/types/array\";\nimport type { Writeable } from \"../types\";\n\nexport function changeOptionalToRequiredFields(\n inputObjectTypes: Writeable<DMMF.InputType[]>\n) {\n inputObjectTypes.map((item: Writeable<DMMF.InputType>) => {\n if (\n item.name.includes(\"WhereUniqueInput\") &&\n // eslint-disable-next-line ts/no-non-null-asserted-optional-chain\n item.constraints.fields?.length! > 0\n ) {\n item.fields = item.fields.map(\n (subItem: Writeable<ArrayValues<DMMF.InputType[\"fields\"]>>) => {\n if (item.constraints.fields?.includes(subItem.name)) {\n subItem.isRequired = true;\n return subItem;\n }\n return subItem;\n }\n );\n }\n return item;\n });\n}\n"],"mappings":"AAqBA,SAAgB,
|
|
1
|
+
{"version":3,"file":"whereUniqueInput-helpers.mjs","names":[],"sources":["../../src/zod/whereUniqueInput-helpers.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 License, and is\n free for commercial and private use. For more information, please visit\n our licensing page.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://stormsoftware.com/projects/stryke/docs\n Contact: https://stormsoftware.com/contact\n License: https://stormsoftware.com/projects/stryke/license\n\n ------------------------------------------------------------------- */\n\nimport type { DMMF } from \"@prisma/generator-helper\";\nimport type { ArrayValues } from \"@stryke/types/array\";\nimport type { Writeable } from \"../types\";\n\nexport function changeOptionalToRequiredFields(\n inputObjectTypes: Writeable<DMMF.InputType[]>\n) {\n inputObjectTypes.map((item: Writeable<DMMF.InputType>) => {\n if (\n item.name.includes(\"WhereUniqueInput\") &&\n // eslint-disable-next-line ts/no-non-null-asserted-optional-chain\n item.constraints.fields?.length! > 0\n ) {\n item.fields = item.fields.map(\n (subItem: Writeable<ArrayValues<DMMF.InputType[\"fields\"]>>) => {\n if (item.constraints.fields?.includes(subItem.name)) {\n subItem.isRequired = true;\n return subItem;\n }\n return subItem;\n }\n );\n }\n return item;\n });\n}\n"],"mappings":";AAqBA,SAAgB,+BACd,kBACA;AACA,kBAAiB,KAAK,SAAoC;AACxD,MACE,KAAK,KAAK,SAAS,mBAAmB,IAEtC,KAAK,YAAY,QAAQ,SAAU,EAEnC,MAAK,SAAS,KAAK,OAAO,KACvB,YAA8D;AAC7D,OAAI,KAAK,YAAY,QAAQ,SAAS,QAAQ,KAAK,EAAE;AACnD,YAAQ,aAAa;AACrB,WAAO;;AAET,UAAO;IAEV;AAEH,SAAO;GACP"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stryke/prisma-trpc-generator",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.50",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A fork of the prisma-trpc-generator code to work in ESM with Prisma v6.",
|
|
6
6
|
"repository": {
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@prisma/generator-helper": "^6.19.2",
|
|
68
68
|
"@prisma/internals": "^6.19.2",
|
|
69
|
-
"@stryke/fs": "^0.33.
|
|
70
|
-
"@stryke/path": "^0.25.
|
|
69
|
+
"@stryke/fs": "^0.33.33",
|
|
70
|
+
"@stryke/path": "^0.25.1",
|
|
71
71
|
"esbuild": "^0.25.12",
|
|
72
72
|
"jiti": "^2.6.1",
|
|
73
73
|
"parenthesis": "^3.1.8",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"tsdown": "^0.17.2"
|
|
82
82
|
},
|
|
83
83
|
"publishConfig": { "access": "public" },
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "9c02f25b3bf83a1228a94fc2ef3fcd816dc0f707"
|
|
85
85
|
}
|