zod-openapi
Advanced tools
Comparing version 2.10.0 to 2.11.0
@@ -37,5 +37,16 @@ "use strict"; | ||
// src/openapi.ts | ||
var openApiVersions = [ | ||
"3.0.0", | ||
"3.0.1", | ||
"3.0.2", | ||
"3.0.3", | ||
"3.1.0" | ||
]; | ||
var satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against); | ||
var isReferenceObject = (schemaOrRef) => Boolean("$ref" in schemaOrRef && schemaOrRef.$ref); | ||
// src/create/schema/metadata.ts | ||
var enhanceWithMetadata = (schemaObject, metadata) => { | ||
if ("$ref" in schemaObject) { | ||
if (isReferenceObject(schemaObject)) { | ||
if (Object.values(metadata).every((val) => val === void 0)) { | ||
@@ -193,12 +204,2 @@ return schemaObject; | ||
// src/openapi.ts | ||
var openApiVersions = [ | ||
"3.0.0", | ||
"3.0.1", | ||
"3.0.2", | ||
"3.0.3", | ||
"3.1.0" | ||
]; | ||
var satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against); | ||
// src/create/schema/parsers/nativeEnum.ts | ||
@@ -253,30 +254,37 @@ var createNativeEnumSchema = (zodEnum, state) => { | ||
]); | ||
if ("$ref" in schemaObject || schemaObject.allOf) { | ||
if (satisfiesVersion(state.components.openapi, "3.1.0")) { | ||
if (isReferenceObject(schemaObject) || schemaObject.allOf) { | ||
return { | ||
oneOf: mapNullOf([schemaObject], state.components.openapi) | ||
}; | ||
} | ||
if (schemaObject.oneOf) { | ||
const { oneOf, ...schema3 } = schemaObject; | ||
return { | ||
oneOf: mapNullOf(oneOf, state.components.openapi), | ||
...schema3 | ||
}; | ||
} | ||
if (schemaObject.anyOf) { | ||
const { anyOf, ...schema3 } = schemaObject; | ||
return { | ||
anyOf: mapNullOf(anyOf, state.components.openapi), | ||
...schema3 | ||
}; | ||
} | ||
const { type: type2, ...schema2 } = schemaObject; | ||
return { | ||
oneOf: mapNullOf([schemaObject], state.components.openapi) | ||
}; | ||
} | ||
if (schemaObject.oneOf) { | ||
const { oneOf, ...schema2 } = schemaObject; | ||
return { | ||
oneOf: mapNullOf(oneOf, state.components.openapi), | ||
type: mapNullType(type2), | ||
...schema2 | ||
}; | ||
} | ||
if (schemaObject.anyOf) { | ||
const { anyOf, ...schema2 } = schemaObject; | ||
if (isReferenceObject(schemaObject)) { | ||
return { | ||
anyOf: mapNullOf(anyOf, state.components.openapi), | ||
...schema2 | ||
allOf: [schemaObject], | ||
nullable: true | ||
}; | ||
} | ||
const { type, ...schema } = schemaObject; | ||
if (satisfiesVersion(state.components.openapi, "3.1.0")) { | ||
return { | ||
type: mapNullType(type), | ||
...schema | ||
}; | ||
} | ||
return { | ||
type, | ||
...type && { type }, | ||
nullable: true, | ||
@@ -283,0 +291,0 @@ ...schema, |
@@ -13,5 +13,16 @@ var __defProp = Object.defineProperty; | ||
// src/openapi.ts | ||
var openApiVersions = [ | ||
"3.0.0", | ||
"3.0.1", | ||
"3.0.2", | ||
"3.0.3", | ||
"3.1.0" | ||
]; | ||
var satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against); | ||
var isReferenceObject = (schemaOrRef) => Boolean("$ref" in schemaOrRef && schemaOrRef.$ref); | ||
// src/create/schema/metadata.ts | ||
var enhanceWithMetadata = (schemaObject, metadata) => { | ||
if ("$ref" in schemaObject) { | ||
if (isReferenceObject(schemaObject)) { | ||
if (Object.values(metadata).every((val) => val === void 0)) { | ||
@@ -169,12 +180,2 @@ return schemaObject; | ||
// src/openapi.ts | ||
var openApiVersions = [ | ||
"3.0.0", | ||
"3.0.1", | ||
"3.0.2", | ||
"3.0.3", | ||
"3.1.0" | ||
]; | ||
var satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against); | ||
// src/create/schema/parsers/nativeEnum.ts | ||
@@ -229,30 +230,37 @@ var createNativeEnumSchema = (zodEnum, state) => { | ||
]); | ||
if ("$ref" in schemaObject || schemaObject.allOf) { | ||
if (satisfiesVersion(state.components.openapi, "3.1.0")) { | ||
if (isReferenceObject(schemaObject) || schemaObject.allOf) { | ||
return { | ||
oneOf: mapNullOf([schemaObject], state.components.openapi) | ||
}; | ||
} | ||
if (schemaObject.oneOf) { | ||
const { oneOf, ...schema3 } = schemaObject; | ||
return { | ||
oneOf: mapNullOf(oneOf, state.components.openapi), | ||
...schema3 | ||
}; | ||
} | ||
if (schemaObject.anyOf) { | ||
const { anyOf, ...schema3 } = schemaObject; | ||
return { | ||
anyOf: mapNullOf(anyOf, state.components.openapi), | ||
...schema3 | ||
}; | ||
} | ||
const { type: type2, ...schema2 } = schemaObject; | ||
return { | ||
oneOf: mapNullOf([schemaObject], state.components.openapi) | ||
}; | ||
} | ||
if (schemaObject.oneOf) { | ||
const { oneOf, ...schema2 } = schemaObject; | ||
return { | ||
oneOf: mapNullOf(oneOf, state.components.openapi), | ||
type: mapNullType(type2), | ||
...schema2 | ||
}; | ||
} | ||
if (schemaObject.anyOf) { | ||
const { anyOf, ...schema2 } = schemaObject; | ||
if (isReferenceObject(schemaObject)) { | ||
return { | ||
anyOf: mapNullOf(anyOf, state.components.openapi), | ||
...schema2 | ||
allOf: [schemaObject], | ||
nullable: true | ||
}; | ||
} | ||
const { type, ...schema } = schemaObject; | ||
if (satisfiesVersion(state.components.openapi, "3.1.0")) { | ||
return { | ||
type: mapNullType(type), | ||
...schema | ||
}; | ||
} | ||
return { | ||
type, | ||
...type && { type }, | ||
nullable: true, | ||
@@ -259,0 +267,0 @@ ...schema, |
import type { ZodNullable, ZodTypeAny } from 'zod'; | ||
import type { oas31 } from '../../../openapi3-ts/dist'; | ||
import { type SchemaState } from '../../schema'; | ||
export declare const createNullableSchema: <T extends ZodTypeAny>(zodNullable: ZodNullable<T>, state: SchemaState) => oas31.SchemaObject; | ||
export declare const createNullableSchema: <T extends ZodTypeAny>(zodNullable: ZodNullable<T>, state: SchemaState) => oas31.SchemaObject | oas31.ReferenceObject; |
@@ -0,3 +1,5 @@ | ||
import type { oas31 } from './openapi3-ts/dist'; | ||
export declare const openApiVersions: readonly ["3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0"]; | ||
export type OpenApiVersion = (typeof openApiVersions)[number]; | ||
export declare const satisfiesVersion: (test: OpenApiVersion, against: OpenApiVersion) => boolean; | ||
export declare const isReferenceObject: (schemaOrRef: oas31.SchemaObject | oas31.ReferenceObject) => schemaOrRef is oas31.ReferenceObject; |
{ | ||
"name": "zod-openapi", | ||
"version": "2.10.0", | ||
"version": "2.11.0", | ||
"description": "Convert Zod Schemas to OpenAPI v3.x documentation", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
179990
4452