diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-false/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-false/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-false/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-false/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-number/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-number/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-number/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-number/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-strict/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-strict/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-strict/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-strict/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-string/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-string/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-string/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/base-url-string/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/clean-false/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/clean-false/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/clean-false/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/clean-false/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/default/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/import-file-extension-ts/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/import-file-extension-ts/client/utils.gen.ts index bf200f0d0..4fdaa0264 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/import-file-extension-ts/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/import-file-extension-ts/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-optional/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/sdk-client-required/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-node16-sdk/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-node16-sdk/client/utils.gen.ts index 567648918..d267604d3 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-node16-sdk/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-node16-sdk/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-nodenext-sdk/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-nodenext-sdk/client/utils.gen.ts index 567648918..d267604d3 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-nodenext-sdk/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-nuxt/tsconfig-nodenext-sdk/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/sse-nuxt/client/utils.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/sse-nuxt/client/utils.gen.ts index 3723a34a7..f6e0c56e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/sse-nuxt/client/utils.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/sse-nuxt/client/utils.gen.ts @@ -346,7 +346,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } diff --git a/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/__tests__/utils.test.ts b/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/__tests__/utils.test.ts index 6a9efac9f..bf6edf290 100644 --- a/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/__tests__/utils.test.ts +++ b/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/__tests__/utils.test.ts @@ -29,6 +29,43 @@ describe('unwrapRefs', () => { const result = unwrapRefs(file); expect(result).toBe(file); }); + + it('returns AbortSignal as-is', () => { + const controller = new AbortController(); + const result = unwrapRefs(controller.signal); + expect(result).toBe(controller.signal); + }); + + it('preserves AbortSignal in object', () => { + const controller = new AbortController(); + const input = { signal: controller.signal, url: '/test' }; + const result = unwrapRefs(input); + expect(result.signal).toBe(controller.signal); + expect(result.signal instanceof AbortSignal).toBe(true); + expect(result.url).toBe('/test'); + }); + + it('returns FormData as-is', () => { + const formData = new FormData(); + formData.append('key', 'value'); + const result = unwrapRefs(formData); + expect(result).toBe(formData); + }); + + it('preserves FormData in object', () => { + const formData = new FormData(); + formData.append('key', 'value'); + const input = { body: formData, url: '/upload' }; + const result = unwrapRefs(input); + expect(result.body).toBe(formData); + expect(result.body instanceof FormData).toBe(true); + }); + + it('returns ReadableStream as-is', () => { + const stream = new ReadableStream(); + const result = unwrapRefs(stream); + expect(result).toBe(stream); + }); }); describe('mergeInterceptors', () => { diff --git a/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/bundle/utils.ts b/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/bundle/utils.ts index 0e9780d3d..72d10b70e 100644 --- a/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/bundle/utils.ts +++ b/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/bundle/utils.ts @@ -344,7 +344,12 @@ export const unwrapRefs = (value: T): UnwrapRefs => { return (isRef(value) ? unref(value) : value) as UnwrapRefs; } - if (value instanceof Blob) { + if ( + value instanceof Blob || + value instanceof FormData || + value instanceof ReadableStream || + value instanceof AbortSignal + ) { return value as UnwrapRefs; } -- 2.51.2 From 129afa052b61d71fe4d0d7f5568b4ea38dead44c Mon Sep 17 00:00:00 2001 From: Lubos Date: Wed, 18 Mar 2026 02:33:36 +0100 Subject: [PATCH 3/3] Create five-cats-begin.md --- .changeset/five-cats-begin.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/five-cats-begin.md diff --git a/.changeset/five-cats-begin.md b/.changeset/five-cats-begin.md new file mode 100644 index 000000000..c3bbdb7b8 --- /dev/null +++ b/.changeset/five-cats-begin.md @@ -0,0 +1,5 @@ +--- +"@hey-api/openapi-ts": patch +--- + +**plugin(@hey-api/client-nuxt)**: preserve AbortSignal, FormData, and ReadableStream in unwrapRefs