From 2d7b99720e1198d47e20411d33775b704fd0a2eb Mon Sep 17 00:00:00 2001 From: Pim Veldhuisen Date: Mon, 17 Jul 2023 21:49:15 +0200 Subject: [PATCH 1/3] add failing unit test for enums with whitespace --- packages/openapi-typescript/test/schema-object.test.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/openapi-typescript/test/schema-object.test.ts b/packages/openapi-typescript/test/schema-object.test.ts index eab63e9b1..32edfca2f 100644 --- a/packages/openapi-typescript/test/schema-object.test.ts +++ b/packages/openapi-typescript/test/schema-object.test.ts @@ -57,6 +57,12 @@ describe("Schema Object", () => { status?: "complete" | "incomplete"; }`); }); + + test("enum (whitespace)", () => { + const schema: SchemaObject = { type: "string", enum: [" blue", "green ", " ", ""] }; + const generated = transformSchemaObject(schema, options); + expect(generated).toBe('" blue" | "green " | " " | ""'); + }); }); describe("number", () => { From e50cdd0265ff99e1b07dd7813394bf2d7f8613ec Mon Sep 17 00:00:00 2001 From: Pim Veldhuisen Date: Mon, 17 Jul 2023 21:49:40 +0200 Subject: [PATCH 2/3] stop trimming whitespace when escaping strings --- packages/openapi-typescript/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/openapi-typescript/src/utils.ts b/packages/openapi-typescript/src/utils.ts index 3c907dc6e..a1262911e 100644 --- a/packages/openapi-typescript/src/utils.ts +++ b/packages/openapi-typescript/src/utils.ts @@ -273,7 +273,7 @@ export function tsUnionOf(...types: (string | number | boolean)[]): string { /** escape string value */ export function escStr(input: any): string { if (typeof input !== "string") return JSON.stringify(input); - return `"${input.trim().replace(DOUBLE_QUOTE_RE, '\\"')}"`; + return `"${input.replace(LB_RE, "").replace(DOUBLE_QUOTE_RE, '\\"')}"`; } /** surround a JS object key with quotes, if needed */ From 63fc53aefedf4b43996f1e4e59cb156fbb5dfd4c Mon Sep 17 00:00:00 2001 From: Pim Veldhuisen Date: Wed, 2 Aug 2023 22:07:33 +0200 Subject: [PATCH 3/3] add changeset --- .changeset/new-rats-yawn.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/new-rats-yawn.md diff --git a/.changeset/new-rats-yawn.md b/.changeset/new-rats-yawn.md new file mode 100644 index 000000000..e7b32dd33 --- /dev/null +++ b/.changeset/new-rats-yawn.md @@ -0,0 +1,5 @@ +--- +"openapi-typescript": patch +--- + +Stop trimming whitespace other than linebreaks in string values