Skip to content

Commit 3107f1e

Browse files
authored
support boolean json schema (#1228)
* support boolean json schema * add changeset
1 parent 0e9e14c commit 3107f1e

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

.changeset/rich-icons-battle.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-typescript": patch
3+
---
4+
5+
Fix boolean JSON Schemas

packages/openapi-typescript/src/transform/schema-object.ts

+4
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ export default function transformSchemaObject(schemaObject: SchemaObject | Refer
2020
export function defaultSchemaObjectTransform(schemaObject: SchemaObject | ReferenceObject, { path, ctx }: TransformSchemaObjectOptions): string {
2121
let { indentLv } = ctx;
2222

23+
// boolean schemas
24+
if (typeof schemaObject === "boolean") {
25+
return schemaObject ? "unknown" : "never";
26+
}
2327
// const fallback (primitives) return passed value
2428
if (!schemaObject || typeof schemaObject !== "object") return schemaObject;
2529
// const fallback (array) return tuple

packages/openapi-typescript/test/schema-object.test.ts

+8
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ const options: TransformSchemaObjectOptions = {
2323
};
2424

2525
describe("Schema Object", () => {
26+
describe("boolean schema", () => {
27+
it("true", () => {
28+
expect(transformSchemaObject(true as any, options)).toBe("unknown");
29+
});
30+
it("false", () => {
31+
expect(transformSchemaObject(false as any, options)).toBe("never");
32+
});
33+
});
2634
describe("data types", () => {
2735
describe("string", () => {
2836
test("basic", () => {

0 commit comments

Comments
 (0)