@orval/zod 6.28.0 → 6.28.2

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/index.d.ts CHANGED
@@ -5,7 +5,7 @@ type ZodValidationSchemaDefinitionInput = {
5
5
  functions: [string, any][];
6
6
  consts: string[];
7
7
  };
8
- declare const parseZodValidationSchemaDefinition: (input: ZodValidationSchemaDefinitionInput, strict: boolean, coerceTypes?: boolean) => {
8
+ declare const parseZodValidationSchemaDefinition: (input: ZodValidationSchemaDefinitionInput, coerceTypes?: boolean) => {
9
9
  zod: string;
10
10
  consts: string;
11
11
  };
package/dist/index.js CHANGED
@@ -224,7 +224,7 @@ var generateZodValidationSchemaDefinition = (schema, _required, name, strict) =>
224
224
  }
225
225
  return { functions, consts: (0, import_lodash.default)(consts) };
226
226
  };
227
- var parseZodValidationSchemaDefinition = (input, strict, coerceTypes = false) => {
227
+ var parseZodValidationSchemaDefinition = (input, coerceTypes = false) => {
228
228
  if (!input.functions.length) {
229
229
  return { zod: "", consts: "" };
230
230
  }
@@ -234,8 +234,8 @@ var parseZodValidationSchemaDefinition = (input, strict, coerceTypes = false) =>
234
234
  if (fn === "allOf") {
235
235
  return args.reduce(
236
236
  (acc, { functions }) => {
237
- const value = functions.map(parseProperty).join("");
238
- const valueWithZod = `${value.startsWith(".") ? "zod" : ""}${value}`;
237
+ const value2 = functions.map(parseProperty).join("");
238
+ const valueWithZod = `${value2.startsWith(".") ? "zod" : ""}${value2}`;
239
239
  if (!acc) {
240
240
  acc += valueWithZod;
241
241
  return acc;
@@ -249,8 +249,8 @@ var parseZodValidationSchemaDefinition = (input, strict, coerceTypes = false) =>
249
249
  if (fn === "oneOf" || fn === "anyOf") {
250
250
  return args.reduce(
251
251
  (acc, { functions }) => {
252
- const value = functions.map(parseProperty).join("");
253
- const valueWithZod = `${value.startsWith(".") ? "zod" : ""}${value}`;
252
+ const value2 = functions.map(parseProperty).join("");
253
+ const valueWithZod = `${value2.startsWith(".") ? "zod" : ""}${value2}`;
254
254
  if (!acc) {
255
255
  acc += valueWithZod;
256
256
  return acc;
@@ -262,28 +262,28 @@ var parseZodValidationSchemaDefinition = (input, strict, coerceTypes = false) =>
262
262
  );
263
263
  }
264
264
  if (fn === "additionalProperties") {
265
- const value = args.functions.map(parseProperty).join("");
266
- const valueWithZod = `${value.startsWith(".") ? "zod" : ""}${value}`;
265
+ const value2 = args.functions.map(parseProperty).join("");
266
+ const valueWithZod = `${value2.startsWith(".") ? "zod" : ""}${value2}`;
267
267
  consts += args.consts;
268
268
  return `zod.record(zod.string(), ${valueWithZod})`;
269
269
  }
270
270
  if (fn === "object") {
271
271
  return `zod.object({
272
272
  ${Object.entries(args).map(([key, schema]) => {
273
- const value = schema.functions.map(parseProperty).join("");
273
+ const value2 = schema.functions.map(parseProperty).join("");
274
274
  consts += schema.consts.join("\n");
275
- return ` "${key}": ${value.startsWith(".") ? "zod" : ""}${value}`;
275
+ return ` "${key}": ${value2.startsWith(".") ? "zod" : ""}${value2}`;
276
276
  }).join(",\n")}
277
- })${strict ? ".strict()" : ""}`;
277
+ })`;
278
278
  }
279
279
  if (fn === "array") {
280
- const value = args.functions.map(parseProperty).join("");
280
+ const value2 = args.functions.map(parseProperty).join("");
281
281
  if (typeof args.consts === "string") {
282
282
  consts += args.consts;
283
283
  } else if (Array.isArray(args.consts)) {
284
284
  consts += args.consts.join("\n");
285
285
  }
286
- return `.array(${value.startsWith(".") ? "zod" : ""}${value})`;
286
+ return `.array(${value2.startsWith(".") ? "zod" : ""}${value2})`;
287
287
  }
288
288
  if (fn === "strict") {
289
289
  return ".strict()";
@@ -294,7 +294,8 @@ ${Object.entries(args).map(([key, schema]) => {
294
294
  return `.${fn}(${args})`;
295
295
  };
296
296
  consts += input.consts.join("\n");
297
- const zod = input.functions.map(parseProperty).join("");
297
+ const value = input.functions.map(parseProperty).join("");
298
+ const zod = `${value.startsWith(".") ? "zod" : ""}${value}`;
298
299
  return { zod, consts };
299
300
  };
300
301
  var deferenceScalar = (value, context) => {
@@ -355,7 +356,7 @@ var parseBodyAndResponse = ({
355
356
  if (resolvedJsonSchema.items) {
356
357
  return {
357
358
  input: generateZodValidationSchemaDefinition(
358
- resolvedJsonSchema,
359
+ resolvedJsonSchema.items,
359
360
  true,
360
361
  name,
361
362
  strict
@@ -502,7 +503,6 @@ var generateZodRoute = ({ operationName, verb, override }, { pathRoute, context
502
503
  });
503
504
  const inputParams = parseZodValidationSchemaDefinition(
504
505
  parsedParameters.params,
505
- override.zod.strict.param,
506
506
  override.zod.coerce.param
507
507
  );
508
508
  if (override.coerceTypes) {
@@ -512,22 +512,18 @@ var generateZodRoute = ({ operationName, verb, override }, { pathRoute, context
512
512
  }
513
513
  const inputQueryParams = parseZodValidationSchemaDefinition(
514
514
  parsedParameters.queryParams,
515
- override.zod.strict.query,
516
515
  (_e = override.zod.coerce.query) != null ? _e : override.coerceTypes
517
516
  );
518
517
  const inputHeaders = parseZodValidationSchemaDefinition(
519
518
  parsedParameters.headers,
520
- override.zod.strict.header,
521
519
  override.zod.coerce.header
522
520
  );
523
521
  const inputBody = parseZodValidationSchemaDefinition(
524
522
  parsedPody.input,
525
- override.zod.strict.body,
526
523
  override.zod.coerce.body
527
524
  );
528
525
  const inputResponse = parseZodValidationSchemaDefinition(
529
526
  parsedResponse.input,
530
- override.zod.strict.response,
531
527
  override.zod.coerce.response
532
528
  );
533
529
  if (!inputParams.zod && !inputQueryParams.zod && !inputHeaders.zod && !inputBody.zod && !inputResponse.zod) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n ParameterObject,\n PathItemObject,\n ReferenceObject,\n RequestBodyObject,\n ResponseObject,\n SchemaObject,\n} from 'openapi3-ts/oas30';\nimport {\n camel,\n ClientBuilder,\n ClientGeneratorsBuilder,\n escape,\n GeneratorDependency,\n GeneratorOptions,\n GeneratorVerbOptions,\n isString,\n resolveRef,\n ContextSpecs,\n isObject,\n isBoolean,\n jsStringEscape,\n getNumberWord,\n pascal,\n} from '@orval/core';\nimport uniq from 'lodash.uniq';\n\nconst ZOD_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n {\n name: 'z',\n alias: 'zod',\n values: true,\n },\n ],\n dependency: 'zod',\n },\n];\n\nexport const getZodDependencies = () => ZOD_DEPENDENCIES;\n\nconst possibleSchemaTypes = [\n 'integer',\n 'number',\n 'string',\n 'boolean',\n 'object',\n 'null',\n 'array',\n];\n\nconst resolveZodType = (schemaTypeValue: SchemaObject['type']) => {\n const type = Array.isArray(schemaTypeValue)\n ? schemaTypeValue.find((t) => possibleSchemaTypes.includes(t))\n : schemaTypeValue;\n\n switch (type) {\n case 'integer':\n return 'number';\n default:\n return type ?? 'any';\n }\n};\n\nlet constsUniqueCounter: Record<string, number> = {};\n\n// https://github.com/colinhacks/zod#coercion-for-primitives\nconst COERCEABLE_TYPES = ['string', 'number', 'boolean', 'bigint', 'date'];\n\nconst generateZodValidationSchemaDefinition = (\n schema: SchemaObject | undefined,\n _required: boolean | undefined,\n name: string,\n strict: boolean,\n): { functions: [string, any][]; consts: string[] } => {\n if (!schema) return { functions: [], consts: [] };\n\n const consts: string[] = [];\n const constsCounter =\n typeof constsUniqueCounter[name] === 'number'\n ? constsUniqueCounter[name] + 1\n : 0;\n\n const constsCounterValue = constsCounter\n ? pascal(getNumberWord(constsCounter))\n : '';\n\n constsUniqueCounter[name] = constsCounter;\n\n const functions: [string, any][] = [];\n const type = resolveZodType(schema.type);\n const required = schema.default !== undefined ? false : _required ?? false;\n const nullable =\n schema.nullable ??\n (Array.isArray(schema.type) && schema.type.includes('null'));\n const min =\n schema.minimum ??\n schema.exclusiveMinimum ??\n schema.minLength ??\n schema.minItems ??\n undefined;\n const max =\n schema.maximum ??\n schema.exclusiveMaximum ??\n schema.maxLength ??\n schema.maxItems ??\n undefined;\n const matches = schema.pattern ?? undefined;\n\n switch (type) {\n case 'array':\n const items = schema.items as SchemaObject | undefined;\n functions.push([\n 'array',\n generateZodValidationSchemaDefinition(\n items,\n true,\n camel(`${name}-item`),\n strict,\n ),\n ]);\n break;\n case 'string': {\n if (schema.enum && type === 'string') {\n break;\n }\n\n if (schema.format === 'date') {\n functions.push(['date', undefined]);\n break;\n }\n\n functions.push([type as string, undefined]);\n\n if (schema.format === 'date-time') {\n functions.push(['datetime', undefined]);\n break;\n }\n\n if (schema.format === 'email') {\n functions.push(['email', undefined]);\n break;\n }\n\n if (schema.format === 'uri' || schema.format === 'hostname') {\n functions.push(['url', undefined]);\n break;\n }\n\n if (schema.format === 'uuid') {\n functions.push(['uuid', undefined]);\n break;\n }\n\n break;\n }\n case 'object':\n default: {\n if (schema.allOf || schema.oneOf || schema.anyOf) {\n const separator = schema.allOf\n ? 'allOf'\n : schema.oneOf\n ? 'oneOf'\n : 'anyOf';\n\n const schemas = (schema.allOf ?? schema.oneOf ?? schema.anyOf) as (\n | SchemaObject\n | ReferenceObject\n )[];\n\n functions.push([\n separator,\n schemas.map((schema) =>\n generateZodValidationSchemaDefinition(\n schema as SchemaObject,\n true,\n camel(name),\n strict,\n ),\n ),\n ]);\n break;\n }\n\n if (schema.properties) {\n functions.push([\n 'object',\n Object.keys(schema.properties)\n .map((key) => ({\n [key]: generateZodValidationSchemaDefinition(\n schema.properties?.[key] as any,\n schema.required?.includes(key),\n camel(`${name}-${key}`),\n strict,\n ),\n }))\n .reduce((acc, curr) => ({ ...acc, ...curr }), {}),\n ]);\n\n if (strict) {\n functions.push(['strict', undefined]);\n }\n\n break;\n }\n\n if (schema.additionalProperties) {\n functions.push([\n 'additionalProperties',\n isBoolean(schema.additionalProperties)\n ? schema.additionalProperties\n : generateZodValidationSchemaDefinition(\n schema.additionalProperties as SchemaObject,\n true,\n name,\n strict,\n ),\n ]);\n\n break;\n }\n\n functions.push([type as string, undefined]);\n\n break;\n }\n }\n\n if (min !== undefined) {\n if (min === 1) {\n functions.push(['min', `${min}`]);\n } else {\n consts.push(`export const ${name}Min${constsCounterValue} = ${min};\\n`);\n functions.push(['min', `${name}Min${constsCounterValue}`]);\n }\n }\n if (max !== undefined) {\n consts.push(`export const ${name}Max${constsCounterValue} = ${max};\\n`);\n functions.push(['max', `${name}Max${constsCounterValue}`]);\n }\n if (matches) {\n const isStartWithSlash = matches.startsWith('/');\n const isEndWithSlash = matches.endsWith('/');\n\n const regexp = `new RegExp('${jsStringEscape(\n matches.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined),\n )}')`;\n\n consts.push(\n `export const ${name}RegExp${constsCounterValue} = ${regexp};\\n`,\n );\n functions.push(['regex', `${name}RegExp${constsCounterValue}`]);\n }\n\n if (schema.enum && type !== 'number') {\n functions.push([\n 'enum',\n [\n `[${schema.enum\n .map((value) => (isString(value) ? `'${escape(value)}'` : `${value}`))\n .join(', ')}]`,\n ],\n ]);\n }\n\n if (!required && nullable) {\n functions.push(['nullish', undefined]);\n } else if (nullable) {\n functions.push(['nullable', undefined]);\n } else if (!required) {\n functions.push(['optional', undefined]);\n }\n\n return { functions, consts: uniq(consts) };\n};\n\nexport type ZodValidationSchemaDefinitionInput = {\n functions: [string, any][];\n consts: string[];\n};\n\nexport const parseZodValidationSchemaDefinition = (\n input: ZodValidationSchemaDefinitionInput,\n strict: boolean,\n coerceTypes = false,\n): { zod: string; consts: string } => {\n if (!input.functions.length) {\n return { zod: '', consts: '' };\n }\n\n let consts = '';\n\n const parseProperty = (property: [string, any]): string => {\n const [fn, args = ''] = property;\n if (fn === 'allOf') {\n return args.reduce(\n (acc: string, { functions }: { functions: [string, any][] }) => {\n const value = functions.map(parseProperty).join('');\n const valueWithZod = `${value.startsWith('.') ? 'zod' : ''}${value}`;\n\n if (!acc) {\n acc += valueWithZod;\n return acc;\n }\n\n acc += `.and(${valueWithZod})`;\n\n return acc;\n },\n '',\n );\n }\n\n if (fn === 'oneOf' || fn === 'anyOf') {\n return args.reduce(\n (acc: string, { functions }: { functions: [string, any][] }) => {\n const value = functions.map(parseProperty).join('');\n const valueWithZod = `${value.startsWith('.') ? 'zod' : ''}${value}`;\n\n if (!acc) {\n acc += valueWithZod;\n return acc;\n }\n\n acc += `.or(${valueWithZod})`;\n\n return acc;\n },\n '',\n );\n }\n\n if (fn === 'additionalProperties') {\n const value = args.functions.map(parseProperty).join('');\n const valueWithZod = `${value.startsWith('.') ? 'zod' : ''}${value}`;\n consts += args.consts;\n return `zod.record(zod.string(), ${valueWithZod})`;\n }\n\n if (fn === 'object') {\n return `zod.object({\n${Object.entries(args)\n .map(([key, schema]) => {\n const value = (schema as ZodValidationSchemaDefinitionInput).functions\n .map(parseProperty)\n .join('');\n consts += (schema as ZodValidationSchemaDefinitionInput).consts.join('\\n');\n return ` \"${key}\": ${value.startsWith('.') ? 'zod' : ''}${value}`;\n })\n .join(',\\n')}\n})${strict ? '.strict()' : ''}`;\n }\n if (fn === 'array') {\n const value = args.functions.map(parseProperty).join('');\n if (typeof args.consts === 'string') {\n consts += args.consts;\n } else if (Array.isArray(args.consts)) {\n consts += args.consts.join('\\n');\n }\n return `.array(${value.startsWith('.') ? 'zod' : ''}${value})`;\n }\n\n if (fn === 'strict') {\n return '.strict()';\n }\n\n if (coerceTypes && COERCEABLE_TYPES.includes(fn)) {\n return `.coerce.${fn}(${args})`;\n }\n\n return `.${fn}(${args})`;\n };\n\n consts += input.consts.join('\\n');\n\n const zod = input.functions.map(parseProperty).join('');\n\n return { zod, consts };\n};\n\nconst deferenceScalar = (value: any, context: ContextSpecs): unknown => {\n if (isObject(value)) {\n return deference(value, context);\n } else if (Array.isArray(value)) {\n return value.map((item) => deferenceScalar(item, context));\n } else {\n return value;\n }\n};\n\nconst deference = (\n schema: SchemaObject | ReferenceObject,\n context: ContextSpecs,\n): SchemaObject => {\n const refName = '$ref' in schema ? schema.$ref : undefined;\n if (refName && context.parents?.includes(refName)) {\n return {};\n }\n\n const childContext: ContextSpecs = {\n ...context,\n ...(refName\n ? { parents: [...(context.parents || []), refName] }\n : undefined),\n };\n\n const { schema: resolvedSchema } = resolveRef<SchemaObject>(\n schema,\n childContext,\n );\n\n return Object.entries(resolvedSchema).reduce((acc, [key, value]) => {\n acc[key] = deferenceScalar(value, childContext);\n return acc;\n }, {} as any);\n};\n\nconst parseBodyAndResponse = ({\n data,\n context,\n name,\n strict,\n}: {\n data: ResponseObject | RequestBodyObject | ReferenceObject | undefined;\n context: ContextSpecs;\n name: string;\n strict: boolean;\n}): {\n input: ZodValidationSchemaDefinitionInput;\n isArray: boolean;\n} => {\n if (!data) {\n return {\n input: { functions: [], consts: [] },\n isArray: false,\n };\n }\n\n const resolvedRef = resolveRef<ResponseObject | RequestBodyObject>(\n data,\n context,\n ).schema;\n\n if (!resolvedRef.content?.['application/json']?.schema) {\n return {\n input: { functions: [], consts: [] },\n isArray: false,\n };\n }\n\n const resolvedJsonSchema = deference(\n resolvedRef.content['application/json'].schema,\n context,\n );\n\n // keep the same behaviour for array\n if (resolvedJsonSchema.items) {\n return {\n input: generateZodValidationSchemaDefinition(\n resolvedJsonSchema,\n true,\n name,\n strict,\n ),\n isArray: true,\n };\n }\n\n return {\n input: generateZodValidationSchemaDefinition(\n resolvedJsonSchema,\n true,\n name,\n strict,\n ),\n isArray: false,\n };\n};\n\nconst parseParameters = ({\n data,\n context,\n operationName,\n strict,\n}: {\n data: (ParameterObject | ReferenceObject)[] | undefined;\n context: ContextSpecs;\n operationName: string;\n strict: {\n param: boolean;\n query: boolean;\n header: boolean;\n body: boolean;\n response: boolean;\n };\n}): {\n headers: ZodValidationSchemaDefinitionInput;\n queryParams: ZodValidationSchemaDefinitionInput;\n params: ZodValidationSchemaDefinitionInput;\n} => {\n if (!data) {\n return {\n headers: {\n functions: [],\n consts: [],\n },\n queryParams: {\n functions: [],\n consts: [],\n },\n params: {\n functions: [],\n consts: [],\n },\n };\n }\n\n const defintionsByParameters = data.reduce(\n (acc, val) => {\n const { schema: parameter } = resolveRef<ParameterObject>(val, context);\n\n if (!parameter.schema) {\n return acc;\n }\n\n const schema = deference(parameter.schema, context);\n\n const mapStrict = {\n path: strict.param,\n query: strict.query,\n header: strict.header,\n };\n\n const definition = generateZodValidationSchemaDefinition(\n schema,\n parameter.required,\n camel(`${operationName}-${parameter.in}-${parameter.name}`),\n mapStrict[parameter.in as 'path' | 'query' | 'header'] ?? false,\n );\n\n if (parameter.in === 'header') {\n return {\n ...acc,\n headers: { ...acc.headers, [parameter.name]: definition },\n };\n }\n\n if (parameter.in === 'query') {\n return {\n ...acc,\n queryParams: { ...acc.queryParams, [parameter.name]: definition },\n };\n }\n\n if (parameter.in === 'path') {\n return {\n ...acc,\n params: { ...acc.params, [parameter.name]: definition },\n };\n }\n\n return acc;\n },\n {\n headers: {},\n queryParams: {},\n params: {},\n } as Record<\n 'headers' | 'queryParams' | 'params',\n Record<string, { functions: [string, any][]; consts: string[] }>\n >,\n );\n\n const headers: ZodValidationSchemaDefinitionInput = {\n functions: [],\n consts: [],\n };\n\n if (Object.keys(defintionsByParameters.headers).length) {\n headers.functions.push(['object', defintionsByParameters.headers]);\n\n if (strict.header) {\n headers.functions.push(['strict', undefined]);\n }\n }\n\n const queryParams: ZodValidationSchemaDefinitionInput = {\n functions: [],\n consts: [],\n };\n\n if (Object.keys(defintionsByParameters.queryParams).length) {\n queryParams.functions.push(['object', defintionsByParameters.queryParams]);\n\n if (strict.query) {\n queryParams.functions.push(['strict', undefined]);\n }\n }\n\n const params: ZodValidationSchemaDefinitionInput = {\n functions: [],\n consts: [],\n };\n\n if (Object.keys(defintionsByParameters.params).length) {\n params.functions.push(['object', defintionsByParameters.params]);\n\n if (strict.param) {\n params.functions.push(['strict', undefined]);\n }\n }\n\n return {\n headers,\n queryParams,\n params,\n };\n};\n\nconst generateZodRoute = (\n { operationName, verb, override }: GeneratorVerbOptions,\n { pathRoute, context }: GeneratorOptions,\n) => {\n const spec = context.specs[context.specKey].paths[pathRoute] as\n | PathItemObject\n | undefined;\n\n const parameters = spec?.[verb]?.parameters;\n const requestBody = spec?.[verb]?.requestBody;\n const response = spec?.[verb]?.responses?.['200'] as\n | ResponseObject\n | ReferenceObject;\n\n const parsedResponse = parseBodyAndResponse({\n data: response,\n context,\n name: camel(`${operationName}-response`),\n strict: override.zod.strict.response,\n });\n\n const parsedPody = parseBodyAndResponse({\n data: requestBody,\n context,\n name: camel(`${operationName}-body`),\n strict: override.zod.strict.body,\n });\n\n const parsedParameters = parseParameters({\n data: parameters,\n context,\n operationName,\n strict: override.zod.strict,\n });\n\n const inputParams = parseZodValidationSchemaDefinition(\n parsedParameters.params,\n override.zod.strict.param,\n override.zod.coerce.param,\n );\n\n if (override.coerceTypes) {\n console.warn(\n 'override.coerceTypes is deprecated, please use override.zod.coerce instead.',\n );\n }\n\n const inputQueryParams = parseZodValidationSchemaDefinition(\n parsedParameters.queryParams,\n override.zod.strict.query,\n override.zod.coerce.query ?? override.coerceTypes,\n );\n const inputHeaders = parseZodValidationSchemaDefinition(\n parsedParameters.headers,\n override.zod.strict.header,\n override.zod.coerce.header,\n );\n\n const inputBody = parseZodValidationSchemaDefinition(\n parsedPody.input,\n override.zod.strict.body,\n override.zod.coerce.body,\n );\n\n const inputResponse = parseZodValidationSchemaDefinition(\n parsedResponse.input,\n override.zod.strict.response,\n override.zod.coerce.response,\n );\n\n if (\n !inputParams.zod &&\n !inputQueryParams.zod &&\n !inputHeaders.zod &&\n !inputBody.zod &&\n !inputResponse.zod\n ) {\n return '';\n }\n\n return [\n ...(inputParams.consts ? [inputParams.consts] : []),\n ...(inputParams.zod\n ? [`export const ${operationName}Params = ${inputParams.zod}`]\n : []),\n ...(inputQueryParams.consts ? [inputQueryParams.consts] : []),\n ...(inputQueryParams.zod\n ? [`export const ${operationName}QueryParams = ${inputQueryParams.zod}`]\n : []),\n ...(inputHeaders.consts ? [inputHeaders.consts] : []),\n ...(inputHeaders.zod\n ? [`export const ${operationName}Header = ${inputHeaders.zod}`]\n : []),\n ...(inputBody.consts ? [inputBody.consts] : []),\n ...(inputBody.zod\n ? [\n parsedPody.isArray\n ? `export const ${operationName}BodyItem = ${inputBody.zod}\nexport const ${operationName}Body = zod.array(${operationName}BodyItem)`\n : `export const ${operationName}Body = ${inputBody.zod}`,\n ]\n : []),\n ...(inputResponse.consts ? [inputResponse.consts] : []),\n ...(inputResponse.zod\n ? [\n parsedResponse.isArray\n ? `export const ${operationName}ResponseItem = ${inputResponse.zod}\nexport const ${operationName}Response = zod.array(${operationName}ResponseItem)`\n : `export const ${operationName}Response = ${inputResponse.zod}`,\n ]\n : []),\n ].join('\\n\\n');\n};\n\nexport const generateZod: ClientBuilder = (verbOptions, options) => {\n const routeImplementation = generateZodRoute(verbOptions, options);\n\n return {\n implementation: routeImplementation ? `${routeImplementation}\\n\\n` : '',\n imports: [],\n };\n};\n\nconst zodClientBuilder: ClientGeneratorsBuilder = {\n client: generateZod,\n dependencies: getZodDependencies,\n};\n\nexport const builder = () => () => zodClientBuilder;\n\nexport default builder;\n"],"mappings":"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","names":["schema","_a","_b","uniq"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n ParameterObject,\n PathItemObject,\n ReferenceObject,\n RequestBodyObject,\n ResponseObject,\n SchemaObject,\n} from 'openapi3-ts/oas30';\nimport {\n camel,\n ClientBuilder,\n ClientGeneratorsBuilder,\n escape,\n GeneratorDependency,\n GeneratorOptions,\n GeneratorVerbOptions,\n isString,\n resolveRef,\n ContextSpecs,\n isObject,\n isBoolean,\n jsStringEscape,\n getNumberWord,\n pascal,\n} from '@orval/core';\nimport uniq from 'lodash.uniq';\n\nconst ZOD_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n {\n name: 'z',\n alias: 'zod',\n values: true,\n },\n ],\n dependency: 'zod',\n },\n];\n\nexport const getZodDependencies = () => ZOD_DEPENDENCIES;\n\nconst possibleSchemaTypes = [\n 'integer',\n 'number',\n 'string',\n 'boolean',\n 'object',\n 'null',\n 'array',\n];\n\nconst resolveZodType = (schemaTypeValue: SchemaObject['type']) => {\n const type = Array.isArray(schemaTypeValue)\n ? schemaTypeValue.find((t) => possibleSchemaTypes.includes(t))\n : schemaTypeValue;\n\n switch (type) {\n case 'integer':\n return 'number';\n default:\n return type ?? 'any';\n }\n};\n\nlet constsUniqueCounter: Record<string, number> = {};\n\n// https://github.com/colinhacks/zod#coercion-for-primitives\nconst COERCEABLE_TYPES = ['string', 'number', 'boolean', 'bigint', 'date'];\n\nconst generateZodValidationSchemaDefinition = (\n schema: SchemaObject | undefined,\n _required: boolean | undefined,\n name: string,\n strict: boolean,\n): { functions: [string, any][]; consts: string[] } => {\n if (!schema) return { functions: [], consts: [] };\n\n const consts: string[] = [];\n const constsCounter =\n typeof constsUniqueCounter[name] === 'number'\n ? constsUniqueCounter[name] + 1\n : 0;\n\n const constsCounterValue = constsCounter\n ? pascal(getNumberWord(constsCounter))\n : '';\n\n constsUniqueCounter[name] = constsCounter;\n\n const functions: [string, any][] = [];\n const type = resolveZodType(schema.type);\n const required = schema.default !== undefined ? false : _required ?? false;\n const nullable =\n schema.nullable ??\n (Array.isArray(schema.type) && schema.type.includes('null'));\n const min =\n schema.minimum ??\n schema.exclusiveMinimum ??\n schema.minLength ??\n schema.minItems ??\n undefined;\n const max =\n schema.maximum ??\n schema.exclusiveMaximum ??\n schema.maxLength ??\n schema.maxItems ??\n undefined;\n const matches = schema.pattern ?? undefined;\n\n switch (type) {\n case 'array':\n const items = schema.items as SchemaObject | undefined;\n functions.push([\n 'array',\n generateZodValidationSchemaDefinition(\n items,\n true,\n camel(`${name}-item`),\n strict,\n ),\n ]);\n break;\n case 'string': {\n if (schema.enum && type === 'string') {\n break;\n }\n\n if (schema.format === 'date') {\n functions.push(['date', undefined]);\n break;\n }\n\n functions.push([type as string, undefined]);\n\n if (schema.format === 'date-time') {\n functions.push(['datetime', undefined]);\n break;\n }\n\n if (schema.format === 'email') {\n functions.push(['email', undefined]);\n break;\n }\n\n if (schema.format === 'uri' || schema.format === 'hostname') {\n functions.push(['url', undefined]);\n break;\n }\n\n if (schema.format === 'uuid') {\n functions.push(['uuid', undefined]);\n break;\n }\n\n break;\n }\n case 'object':\n default: {\n if (schema.allOf || schema.oneOf || schema.anyOf) {\n const separator = schema.allOf\n ? 'allOf'\n : schema.oneOf\n ? 'oneOf'\n : 'anyOf';\n\n const schemas = (schema.allOf ?? schema.oneOf ?? schema.anyOf) as (\n | SchemaObject\n | ReferenceObject\n )[];\n\n functions.push([\n separator,\n schemas.map((schema) =>\n generateZodValidationSchemaDefinition(\n schema as SchemaObject,\n true,\n camel(name),\n strict,\n ),\n ),\n ]);\n break;\n }\n\n if (schema.properties) {\n functions.push([\n 'object',\n Object.keys(schema.properties)\n .map((key) => ({\n [key]: generateZodValidationSchemaDefinition(\n schema.properties?.[key] as any,\n schema.required?.includes(key),\n camel(`${name}-${key}`),\n strict,\n ),\n }))\n .reduce((acc, curr) => ({ ...acc, ...curr }), {}),\n ]);\n\n if (strict) {\n functions.push(['strict', undefined]);\n }\n\n break;\n }\n\n if (schema.additionalProperties) {\n functions.push([\n 'additionalProperties',\n isBoolean(schema.additionalProperties)\n ? schema.additionalProperties\n : generateZodValidationSchemaDefinition(\n schema.additionalProperties as SchemaObject,\n true,\n name,\n strict,\n ),\n ]);\n\n break;\n }\n\n functions.push([type as string, undefined]);\n\n break;\n }\n }\n\n if (min !== undefined) {\n if (min === 1) {\n functions.push(['min', `${min}`]);\n } else {\n consts.push(`export const ${name}Min${constsCounterValue} = ${min};\\n`);\n functions.push(['min', `${name}Min${constsCounterValue}`]);\n }\n }\n if (max !== undefined) {\n consts.push(`export const ${name}Max${constsCounterValue} = ${max};\\n`);\n functions.push(['max', `${name}Max${constsCounterValue}`]);\n }\n if (matches) {\n const isStartWithSlash = matches.startsWith('/');\n const isEndWithSlash = matches.endsWith('/');\n\n const regexp = `new RegExp('${jsStringEscape(\n matches.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined),\n )}')`;\n\n consts.push(\n `export const ${name}RegExp${constsCounterValue} = ${regexp};\\n`,\n );\n functions.push(['regex', `${name}RegExp${constsCounterValue}`]);\n }\n\n if (schema.enum && type !== 'number') {\n functions.push([\n 'enum',\n [\n `[${schema.enum\n .map((value) => (isString(value) ? `'${escape(value)}'` : `${value}`))\n .join(', ')}]`,\n ],\n ]);\n }\n\n if (!required && nullable) {\n functions.push(['nullish', undefined]);\n } else if (nullable) {\n functions.push(['nullable', undefined]);\n } else if (!required) {\n functions.push(['optional', undefined]);\n }\n\n return { functions, consts: uniq(consts) };\n};\n\nexport type ZodValidationSchemaDefinitionInput = {\n functions: [string, any][];\n consts: string[];\n};\n\nexport const parseZodValidationSchemaDefinition = (\n input: ZodValidationSchemaDefinitionInput,\n coerceTypes = false,\n): { zod: string; consts: string } => {\n if (!input.functions.length) {\n return { zod: '', consts: '' };\n }\n\n let consts = '';\n\n const parseProperty = (property: [string, any]): string => {\n const [fn, args = ''] = property;\n if (fn === 'allOf') {\n return args.reduce(\n (acc: string, { functions }: { functions: [string, any][] }) => {\n const value = functions.map(parseProperty).join('');\n const valueWithZod = `${value.startsWith('.') ? 'zod' : ''}${value}`;\n\n if (!acc) {\n acc += valueWithZod;\n return acc;\n }\n\n acc += `.and(${valueWithZod})`;\n\n return acc;\n },\n '',\n );\n }\n\n if (fn === 'oneOf' || fn === 'anyOf') {\n return args.reduce(\n (acc: string, { functions }: { functions: [string, any][] }) => {\n const value = functions.map(parseProperty).join('');\n const valueWithZod = `${value.startsWith('.') ? 'zod' : ''}${value}`;\n\n if (!acc) {\n acc += valueWithZod;\n return acc;\n }\n\n acc += `.or(${valueWithZod})`;\n\n return acc;\n },\n '',\n );\n }\n\n if (fn === 'additionalProperties') {\n const value = args.functions.map(parseProperty).join('');\n const valueWithZod = `${value.startsWith('.') ? 'zod' : ''}${value}`;\n consts += args.consts;\n return `zod.record(zod.string(), ${valueWithZod})`;\n }\n\n if (fn === 'object') {\n return `zod.object({\n${Object.entries(args)\n .map(([key, schema]) => {\n const value = (schema as ZodValidationSchemaDefinitionInput).functions\n .map(parseProperty)\n .join('');\n consts += (schema as ZodValidationSchemaDefinitionInput).consts.join('\\n');\n return ` \"${key}\": ${value.startsWith('.') ? 'zod' : ''}${value}`;\n })\n .join(',\\n')}\n})`;\n }\n if (fn === 'array') {\n const value = args.functions.map(parseProperty).join('');\n if (typeof args.consts === 'string') {\n consts += args.consts;\n } else if (Array.isArray(args.consts)) {\n consts += args.consts.join('\\n');\n }\n return `.array(${value.startsWith('.') ? 'zod' : ''}${value})`;\n }\n\n if (fn === 'strict') {\n return '.strict()';\n }\n\n if (coerceTypes && COERCEABLE_TYPES.includes(fn)) {\n return `.coerce.${fn}(${args})`;\n }\n\n return `.${fn}(${args})`;\n };\n\n consts += input.consts.join('\\n');\n\n const value = input.functions.map(parseProperty).join('');\n\n const zod = `${value.startsWith('.') ? 'zod' : ''}${value}`;\n\n return { zod, consts };\n};\n\nconst deferenceScalar = (value: any, context: ContextSpecs): unknown => {\n if (isObject(value)) {\n return deference(value, context);\n } else if (Array.isArray(value)) {\n return value.map((item) => deferenceScalar(item, context));\n } else {\n return value;\n }\n};\n\nconst deference = (\n schema: SchemaObject | ReferenceObject,\n context: ContextSpecs,\n): SchemaObject => {\n const refName = '$ref' in schema ? schema.$ref : undefined;\n if (refName && context.parents?.includes(refName)) {\n return {};\n }\n\n const childContext: ContextSpecs = {\n ...context,\n ...(refName\n ? { parents: [...(context.parents || []), refName] }\n : undefined),\n };\n\n const { schema: resolvedSchema } = resolveRef<SchemaObject>(\n schema,\n childContext,\n );\n\n return Object.entries(resolvedSchema).reduce((acc, [key, value]) => {\n acc[key] = deferenceScalar(value, childContext);\n return acc;\n }, {} as any);\n};\n\nconst parseBodyAndResponse = ({\n data,\n context,\n name,\n strict,\n}: {\n data: ResponseObject | RequestBodyObject | ReferenceObject | undefined;\n context: ContextSpecs;\n name: string;\n strict: boolean;\n}): {\n input: ZodValidationSchemaDefinitionInput;\n isArray: boolean;\n} => {\n if (!data) {\n return {\n input: { functions: [], consts: [] },\n isArray: false,\n };\n }\n\n const resolvedRef = resolveRef<ResponseObject | RequestBodyObject>(\n data,\n context,\n ).schema;\n\n if (!resolvedRef.content?.['application/json']?.schema) {\n return {\n input: { functions: [], consts: [] },\n isArray: false,\n };\n }\n\n const resolvedJsonSchema = deference(\n resolvedRef.content['application/json'].schema,\n context,\n );\n\n // keep the same behaviour for array\n if (resolvedJsonSchema.items) {\n return {\n input: generateZodValidationSchemaDefinition(\n resolvedJsonSchema.items as SchemaObject,\n true,\n name,\n strict,\n ),\n isArray: true,\n };\n }\n\n return {\n input: generateZodValidationSchemaDefinition(\n resolvedJsonSchema,\n true,\n name,\n strict,\n ),\n isArray: false,\n };\n};\n\nconst parseParameters = ({\n data,\n context,\n operationName,\n strict,\n}: {\n data: (ParameterObject | ReferenceObject)[] | undefined;\n context: ContextSpecs;\n operationName: string;\n strict: {\n param: boolean;\n query: boolean;\n header: boolean;\n body: boolean;\n response: boolean;\n };\n}): {\n headers: ZodValidationSchemaDefinitionInput;\n queryParams: ZodValidationSchemaDefinitionInput;\n params: ZodValidationSchemaDefinitionInput;\n} => {\n if (!data) {\n return {\n headers: {\n functions: [],\n consts: [],\n },\n queryParams: {\n functions: [],\n consts: [],\n },\n params: {\n functions: [],\n consts: [],\n },\n };\n }\n\n const defintionsByParameters = data.reduce(\n (acc, val) => {\n const { schema: parameter } = resolveRef<ParameterObject>(val, context);\n\n if (!parameter.schema) {\n return acc;\n }\n\n const schema = deference(parameter.schema, context);\n\n const mapStrict = {\n path: strict.param,\n query: strict.query,\n header: strict.header,\n };\n\n const definition = generateZodValidationSchemaDefinition(\n schema,\n parameter.required,\n camel(`${operationName}-${parameter.in}-${parameter.name}`),\n mapStrict[parameter.in as 'path' | 'query' | 'header'] ?? false,\n );\n\n if (parameter.in === 'header') {\n return {\n ...acc,\n headers: { ...acc.headers, [parameter.name]: definition },\n };\n }\n\n if (parameter.in === 'query') {\n return {\n ...acc,\n queryParams: { ...acc.queryParams, [parameter.name]: definition },\n };\n }\n\n if (parameter.in === 'path') {\n return {\n ...acc,\n params: { ...acc.params, [parameter.name]: definition },\n };\n }\n\n return acc;\n },\n {\n headers: {},\n queryParams: {},\n params: {},\n } as Record<\n 'headers' | 'queryParams' | 'params',\n Record<string, { functions: [string, any][]; consts: string[] }>\n >,\n );\n\n const headers: ZodValidationSchemaDefinitionInput = {\n functions: [],\n consts: [],\n };\n\n if (Object.keys(defintionsByParameters.headers).length) {\n headers.functions.push(['object', defintionsByParameters.headers]);\n\n if (strict.header) {\n headers.functions.push(['strict', undefined]);\n }\n }\n\n const queryParams: ZodValidationSchemaDefinitionInput = {\n functions: [],\n consts: [],\n };\n\n if (Object.keys(defintionsByParameters.queryParams).length) {\n queryParams.functions.push(['object', defintionsByParameters.queryParams]);\n\n if (strict.query) {\n queryParams.functions.push(['strict', undefined]);\n }\n }\n\n const params: ZodValidationSchemaDefinitionInput = {\n functions: [],\n consts: [],\n };\n\n if (Object.keys(defintionsByParameters.params).length) {\n params.functions.push(['object', defintionsByParameters.params]);\n\n if (strict.param) {\n params.functions.push(['strict', undefined]);\n }\n }\n\n return {\n headers,\n queryParams,\n params,\n };\n};\n\nconst generateZodRoute = (\n { operationName, verb, override }: GeneratorVerbOptions,\n { pathRoute, context }: GeneratorOptions,\n) => {\n const spec = context.specs[context.specKey].paths[pathRoute] as\n | PathItemObject\n | undefined;\n\n const parameters = spec?.[verb]?.parameters;\n const requestBody = spec?.[verb]?.requestBody;\n const response = spec?.[verb]?.responses?.['200'] as\n | ResponseObject\n | ReferenceObject;\n\n const parsedResponse = parseBodyAndResponse({\n data: response,\n context,\n name: camel(`${operationName}-response`),\n strict: override.zod.strict.response,\n });\n\n const parsedPody = parseBodyAndResponse({\n data: requestBody,\n context,\n name: camel(`${operationName}-body`),\n strict: override.zod.strict.body,\n });\n\n const parsedParameters = parseParameters({\n data: parameters,\n context,\n operationName,\n strict: override.zod.strict,\n });\n\n const inputParams = parseZodValidationSchemaDefinition(\n parsedParameters.params,\n override.zod.coerce.param,\n );\n\n if (override.coerceTypes) {\n console.warn(\n 'override.coerceTypes is deprecated, please use override.zod.coerce instead.',\n );\n }\n\n const inputQueryParams = parseZodValidationSchemaDefinition(\n parsedParameters.queryParams,\n override.zod.coerce.query ?? override.coerceTypes,\n );\n const inputHeaders = parseZodValidationSchemaDefinition(\n parsedParameters.headers,\n override.zod.coerce.header,\n );\n\n const inputBody = parseZodValidationSchemaDefinition(\n parsedPody.input,\n override.zod.coerce.body,\n );\n\n const inputResponse = parseZodValidationSchemaDefinition(\n parsedResponse.input,\n override.zod.coerce.response,\n );\n\n if (\n !inputParams.zod &&\n !inputQueryParams.zod &&\n !inputHeaders.zod &&\n !inputBody.zod &&\n !inputResponse.zod\n ) {\n return '';\n }\n\n return [\n ...(inputParams.consts ? [inputParams.consts] : []),\n ...(inputParams.zod\n ? [`export const ${operationName}Params = ${inputParams.zod}`]\n : []),\n ...(inputQueryParams.consts ? [inputQueryParams.consts] : []),\n ...(inputQueryParams.zod\n ? [`export const ${operationName}QueryParams = ${inputQueryParams.zod}`]\n : []),\n ...(inputHeaders.consts ? [inputHeaders.consts] : []),\n ...(inputHeaders.zod\n ? [`export const ${operationName}Header = ${inputHeaders.zod}`]\n : []),\n ...(inputBody.consts ? [inputBody.consts] : []),\n ...(inputBody.zod\n ? [\n parsedPody.isArray\n ? `export const ${operationName}BodyItem = ${inputBody.zod}\nexport const ${operationName}Body = zod.array(${operationName}BodyItem)`\n : `export const ${operationName}Body = ${inputBody.zod}`,\n ]\n : []),\n ...(inputResponse.consts ? [inputResponse.consts] : []),\n ...(inputResponse.zod\n ? [\n parsedResponse.isArray\n ? `export const ${operationName}ResponseItem = ${inputResponse.zod}\nexport const ${operationName}Response = zod.array(${operationName}ResponseItem)`\n : `export const ${operationName}Response = ${inputResponse.zod}`,\n ]\n : []),\n ].join('\\n\\n');\n};\n\nexport const generateZod: ClientBuilder = (verbOptions, options) => {\n const routeImplementation = generateZodRoute(verbOptions, options);\n\n return {\n implementation: routeImplementation ? `${routeImplementation}\\n\\n` : '',\n imports: [],\n };\n};\n\nconst zodClientBuilder: ClientGeneratorsBuilder = {\n client: generateZod,\n dependencies: getZodDependencies,\n};\n\nexport const builder = () => () => zodClientBuilder;\n\nexport default builder;\n"],"mappings":"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","names":["schema","_a","_b","uniq","value"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orval/zod",
3
- "version": "6.28.0",
3
+ "version": "6.28.2",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "test": "vitest --global test.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@orval/core": "6.28.0",
17
+ "@orval/core": "6.28.2",
18
18
  "lodash.uniq": "^4.5.0"
19
19
  },
20
20
  "devDependencies": {