+1
-2
packages/openapi-ts/src/plugins/zod/mini/plugin.ts
+1
-2
packages/openapi-ts/src/plugins/zod/mini/plugin.ts
+1
-2
packages/openapi-ts/src/plugins/zod/v3/plugin.ts
+1
-2
packages/openapi-ts/src/plugins/zod/v3/plugin.ts
+18
-2
packages/openapi-ts/src/plugins/zod/v4/plugin.ts
+18
-2
packages/openapi-ts/src/plugins/zod/v4/plugin.ts
···
431
431
432
432
if (
433
433
schema.additionalProperties &&
434
-
schema.additionalProperties.type === 'object' &&
435
-
!Object.keys(properties).length
434
+
(!schema.properties || !Object.keys(schema.properties).length)
436
435
) {
437
436
const zodSchema = schemaToZodSchema({
438
437
plugin,
···
458
457
if (zodSchema.hasCircularReference) {
459
458
result.hasCircularReference = true;
460
459
}
460
+
461
+
// Return with typeName for circular references
462
+
if (result.hasCircularReference) {
463
+
return {
464
+
...result,
465
+
typeName: 'ZodType',
466
+
} as ZodSchema;
467
+
}
468
+
461
469
return result as Omit<ZodSchema, 'typeName'>;
462
470
}
463
471
···
468
476
}),
469
477
parameters: [ts.factory.createObjectLiteralExpression(properties, true)],
470
478
});
479
+
480
+
// Return with typeName for circular references (AnyZodObject doesn't exist in Zod v4, use ZodType)
481
+
if (result.hasCircularReference) {
482
+
return {
483
+
...result,
484
+
typeName: 'ZodType',
485
+
} as ZodSchema;
486
+
}
471
487
472
488
return result as Omit<ZodSchema, 'typeName'>;
473
489
};