From 00e4d8e2ebc1dce4503847f45d76c719091a4856 Mon Sep 17 00:00:00 2001 From: Martin PAUCOT Date: Mon, 27 Jan 2025 20:08:42 +0100 Subject: [PATCH] fix(metadata): fix thunk type detection --- .changeset/mean-colts-hunt.md | 5 +++++ packages/openapi-metadata/src/utils/metadata.ts | 2 +- packages/openapi-metadata/test/utils/metadata.test.ts | 8 ++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .changeset/mean-colts-hunt.md diff --git a/.changeset/mean-colts-hunt.md b/.changeset/mean-colts-hunt.md new file mode 100644 index 000000000..245505dcb --- /dev/null +++ b/.changeset/mean-colts-hunt.md @@ -0,0 +1,5 @@ +--- +"openapi-metadata": patch +--- + +[#2123](https://github.com/openapi-ts/openapi-typescript/issues/2123) Fix thunk type detection diff --git a/packages/openapi-metadata/src/utils/metadata.ts b/packages/openapi-metadata/src/utils/metadata.ts index 13f19a224..110c1737a 100644 --- a/packages/openapi-metadata/src/utils/metadata.ts +++ b/packages/openapi-metadata/src/utils/metadata.ts @@ -35,7 +35,7 @@ export function findType({ metadataKey, prototype, propertyKey }: FindTypeOption return reflectedType; } -const IS_THUNK_REG = /.+=>[\w\d\s\t\n\r]*/; +const IS_THUNK_REG = /^.+=>[\w\d\s\t\n\r]*/; /** * Asserts that a value is a thunk value. diff --git a/packages/openapi-metadata/test/utils/metadata.test.ts b/packages/openapi-metadata/test/utils/metadata.test.ts index 9bd238511..68059edb5 100644 --- a/packages/openapi-metadata/test/utils/metadata.test.ts +++ b/packages/openapi-metadata/test/utils/metadata.test.ts @@ -12,6 +12,14 @@ test("isThunk", () => { expect(isThunk(User)).toBe(false); expect(isThunk(() => User)).toBe(true); + class InsideThunk { + test() { + return [].map(() => {}); + } + } + expect(isThunk(InsideThunk)).toBe(false); + expect(isThunk(() => InsideThunk)).toBe(true); + expect( isThunk(() => { return "TESTEST";