diff --git a/.changeset/serious-days-live.md b/.changeset/serious-days-live.md new file mode 100644 index 000000000..0036fc425 --- /dev/null +++ b/.changeset/serious-days-live.md @@ -0,0 +1,5 @@ +--- +"openapi-typescript": patch +--- + +Make sure result is an object before using the in operator. diff --git a/packages/openapi-typescript/src/transform/schema-object.ts b/packages/openapi-typescript/src/transform/schema-object.ts index 55e58ee5b..0885324b3 100644 --- a/packages/openapi-typescript/src/transform/schema-object.ts +++ b/packages/openapi-typescript/src/transform/schema-object.ts @@ -269,7 +269,7 @@ function transformSchemaObjectCore(schemaObject: SchemaObject, options: Transfor if ("type" in schemaObject && schemaObject.type) { if (typeof options.ctx.transform === "function") { const result = options.ctx.transform(schemaObject, options); - if (result) { + if (result && typeof result === "object") { if ("schema" in result) { if (result.questionToken) { return ts.factory.createUnionTypeNode([result.schema, UNDEFINED]); @@ -470,7 +470,7 @@ function transformSchemaObjectCore(schemaObject: SchemaObject, options: Transfor if (typeof options.ctx.transform === "function") { const result = options.ctx.transform(v as SchemaObject, options); - if (result) { + if (result && typeof result === "object") { if ("schema" in result) { type = result.schema; optional = result.questionToken ? QUESTION_TOKEN : optional;