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";