From c76c59de10a309680575ac983b67eb394d68c3f6 Mon Sep 17 00:00:00 2001 From: Mauro Ronchi Date: Tue, 18 Jul 2023 12:09:21 +0200 Subject: [PATCH 1/2] support boolean json schema --- .../openapi-typescript/src/transform/schema-object.ts | 4 ++++ packages/openapi-typescript/test/schema-object.test.ts | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/openapi-typescript/src/transform/schema-object.ts b/packages/openapi-typescript/src/transform/schema-object.ts index 75a75a367..ab11d7763 100644 --- a/packages/openapi-typescript/src/transform/schema-object.ts +++ b/packages/openapi-typescript/src/transform/schema-object.ts @@ -20,6 +20,10 @@ export default function transformSchemaObject(schemaObject: SchemaObject | Refer export function defaultSchemaObjectTransform(schemaObject: SchemaObject | ReferenceObject, { path, ctx }: TransformSchemaObjectOptions): string { let { indentLv } = ctx; + // boolean schemas + if (typeof schemaObject === "boolean") { + return schemaObject ? "unknown" : "never"; + } // const fallback (primitives) return passed value if (!schemaObject || typeof schemaObject !== "object") return schemaObject; // const fallback (array) return tuple diff --git a/packages/openapi-typescript/test/schema-object.test.ts b/packages/openapi-typescript/test/schema-object.test.ts index a375881d3..5fea56f46 100644 --- a/packages/openapi-typescript/test/schema-object.test.ts +++ b/packages/openapi-typescript/test/schema-object.test.ts @@ -23,6 +23,14 @@ const options: TransformSchemaObjectOptions = { }; describe("Schema Object", () => { + describe("boolean schema", () => { + it("true", () => { + expect(transformSchemaObject(true as any, options)).toBe("unknown"); + }); + it("false", () => { + expect(transformSchemaObject(false as any, options)).toBe("never"); + }); + }); describe("data types", () => { describe("string", () => { test("basic", () => { From 6e0d0dd5af03d8dbe256fefe68e3d82a88b81c2a Mon Sep 17 00:00:00 2001 From: Mauro Ronchi Date: Tue, 18 Jul 2023 12:46:06 +0200 Subject: [PATCH 2/2] add changeset --- .changeset/rich-icons-battle.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rich-icons-battle.md diff --git a/.changeset/rich-icons-battle.md b/.changeset/rich-icons-battle.md new file mode 100644 index 000000000..446a32a39 --- /dev/null +++ b/.changeset/rich-icons-battle.md @@ -0,0 +1,5 @@ +--- +"openapi-typescript": patch +--- + +Fix boolean JSON Schemas