fork of hey-api/openapi-ts because I need some additional things
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #3062 from JanST123GS/bugfix/axios_query

Fix: In axios client, proving NO paramsSerializer should use the `query` option for params

authored by

Lubos and committed by
GitHub
37c3eab8 c60ef946

+89 -32
+5
.changeset/forty-jobs-sneeze.md
··· 1 + --- 2 + "@hey-api/openapi-ts": patch 3 + --- 4 + 5 + **clients(axios)**: use `query` option when no `paramsSerializer` is provided
+1 -1
examples/openapi-ts-axios/src/client/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/plugins/@tanstack/angular-query-experimental/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/plugins/@tanstack/react-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/plugins/@tanstack/solid-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/plugins/@tanstack/svelte-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/plugins/@tanstack/vue-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/content-types/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/parameter-explode-false-axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/@tanstack/angular-query-experimental/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/@tanstack/react-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/@tanstack/solid-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/@tanstack/svelte-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/@tanstack/vue-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/base-url-false/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/base-url-number/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/base-url-strict/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/base-url-string/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/clean-false/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/default/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/import-file-extension-ts/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/sdk-client-optional/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/sdk-client-required/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/tsconfig-nodenext-sdk/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/content-types/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/parameter-explode-false-axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/@tanstack/angular-query-experimental/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/@tanstack/react-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/@tanstack/solid-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/@tanstack/svelte-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/@tanstack/vue-query/axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+1 -1
packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/sse-axios/client/client.gen.ts
··· 84 84 data: getValidRequestBody(opts), 85 85 headers: opts.headers as RawAxiosRequestHeaders, 86 86 // let `paramsSerializer()` handle query params if it exists 87 - params: opts.paramsSerializer ? opts.query : undefined, 87 + params: !opts.paramsSerializer ? opts.query : undefined, 88 88 url, 89 89 }); 90 90
+52
packages/openapi-ts/src/plugins/@hey-api/client-axios/__tests__/client.test.ts
··· 49 49 it.each(scenarios)('returns $url', ({ options, url }) => { 50 50 expect(client.buildUrl(options)).toBe(url); 51 51 }); 52 + 53 + it.each(scenarios)( 54 + 'correctly maps `query` parameter to `params` parameter for axios', 55 + async ({ options }) => { 56 + const mockAxios = vi.fn((config) => ({ config })); 57 + 58 + expect( 59 + ( 60 + await client.request({ 61 + ...options, 62 + axios: mockAxios as Partial<AxiosInstance> as AxiosInstance, 63 + method: 'GET', 64 + }) 65 + ).config?.params, 66 + ).toBe(options.query); 67 + }, 68 + ); 69 + 70 + it.each(scenarios)( 71 + 'uses a custom `paramsSerializer` method when given and do not map `params` for axios', 72 + async ({ options }) => { 73 + const mockAxios = vi.fn((config) => ({ config })); 74 + 75 + const paramsSerializer = (params: Record<string, string>) => 76 + new URLSearchParams(params).toString(); 77 + 78 + expect( 79 + ( 80 + await client.request({ 81 + ...options, 82 + axios: mockAxios as Partial<AxiosInstance> as AxiosInstance, 83 + method: 'GET', 84 + paramsSerializer, 85 + }) 86 + ).config, 87 + ).toEqual( 88 + expect.objectContaining({ 89 + params: undefined, 90 + paramsSerializer, 91 + }), 92 + ); 93 + }, 94 + ); 52 95 }); 53 96 54 97 describe('AxiosInstance', () => { ··· 350 393 351 394 const config = client.getUri({ baseURL: undefined, url: '/users' }); 352 395 expect(config).toBe('https://api.example.com/users'); 396 + }); 397 + it('does append `params` as searchParams to the URL', async () => { 398 + const client = axios.create({ 399 + baseURL: 'https://api.example.com', 400 + params: { foo: 'bar' }, 401 + }); 402 + 403 + const config = client.getUri({ baseURL: undefined, url: '/users' }); 404 + expect(config).toBe('https://api.example.com/users?foo=bar'); 353 405 }); 354 406 });
+1 -1
packages/openapi-ts/src/plugins/@hey-api/client-axios/bundle/client.ts
··· 82 82 data: getValidRequestBody(opts), 83 83 headers: opts.headers as RawAxiosRequestHeaders, 84 84 // let `paramsSerializer()` handle query params if it exists 85 - params: opts.paramsSerializer ? opts.query : undefined, 85 + params: !opts.paramsSerializer ? opts.query : undefined, 86 86 url, 87 87 }); 88 88