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

Merge pull request #2165 from hey-api/fix/client-path-param-date

fix(client): do not serialize path param name in url

authored by

Lubos and committed by
GitHub
3d0aeb82 32a8d2c9

+46 -6
+9
.changeset/cyan-buckets-protect.md
··· 1 + --- 2 + '@hey-api/client-custom': patch 3 + '@hey-api/client-axios': patch 4 + '@hey-api/client-fetch': patch 5 + '@hey-api/client-core': patch 6 + '@hey-api/client-next': patch 7 + --- 8 + 9 + fix(client): do not serialize path param name in url
+1
packages/client-axios/src/utils.ts
··· 63 63 name, 64 64 style, 65 65 value: value as Record<string, unknown>, 66 + valueOnly: true, 66 67 }), 67 68 ); 68 69 continue;
+3 -1
packages/client-core/src/pathSerializer.ts
··· 132 132 name, 133 133 style, 134 134 value, 135 + valueOnly, 135 136 }: SerializeOptions<ObjectSeparatorStyle> & { 136 137 value: Record<string, unknown> | Date; 138 + valueOnly?: boolean; 137 139 }) => { 138 140 if (value instanceof Date) { 139 - return `${name}=${value.toISOString()}`; 141 + return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`; 140 142 } 141 143 142 144 if (style !== 'deepObject' && !explode) {
+1
packages/client-custom/src/utils.ts
··· 67 67 name, 68 68 style, 69 69 value: value as Record<string, unknown>, 70 + valueOnly: true, 70 71 }), 71 72 ); 72 73 continue;
+23 -1
packages/client-fetch/src/__tests__/utils.test.ts
··· 1 1 import type { Auth } from '@hey-api/client-core'; 2 2 import { describe, expect, it, vi } from 'vitest'; 3 3 4 - import { getParseAs, setAuthParams } from '../utils'; 4 + import type { Client } from '../types'; 5 + import { buildUrl, getParseAs, setAuthParams } from '../utils'; 6 + 7 + describe('buildUrl', () => { 8 + const scenarios: Array<{ 9 + options: Parameters<Client['buildUrl']>[0]; 10 + url: string; 11 + }> = [ 12 + { 13 + options: { 14 + path: { 15 + id: new Date('2025-01-01T00:00:00.000Z'), 16 + }, 17 + url: '/foo/{id}', 18 + }, 19 + url: '/foo/2025-01-01T00:00:00.000Z', 20 + }, 21 + ]; 22 + 23 + it.each(scenarios)('builds $url', async ({ options, url }) => { 24 + expect(buildUrl(options)).toEqual(url); 25 + }); 26 + }); 5 27 6 28 describe('getParseAs', () => { 7 29 const scenarios: Array<{
+1
packages/client-fetch/src/utils.ts
··· 67 67 name, 68 68 style, 69 69 value: value as Record<string, unknown>, 70 + valueOnly: true, 70 71 }), 71 72 ); 72 73 continue;
+1
packages/client-next/src/utils.ts
··· 67 67 name, 68 68 style, 69 69 value: value as Record<string, unknown>, 70 + valueOnly: true, 70 71 }), 71 72 ); 72 73 continue;
+1
packages/client-nuxt/src/utils.ts
··· 69 69 name, 70 70 style, 71 71 value: value as Record<string, unknown>, 72 + valueOnly: true, 72 73 }), 73 74 ); 74 75 continue;
+1 -1
packages/openapi-ts-tests/test/__snapshots__/3.1.x/clients/@hey-api/client-axios/bundle/client/index.cjs
··· 1 - 'use strict';var L=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var L__default=/*#__PURE__*/_interopDefault(L);var w=async(t,r)=>{let e=typeof r=="function"?await r(t):r;if(e)return t.scheme==="bearer"?`Bearer ${e}`:t.scheme==="basic"?`Basic ${btoa(e)}`:e},O=(t,r,e)=>{typeof e=="string"||e instanceof Blob?t.append(r,e):t.append(r,JSON.stringify(e));},z=(t,r,e)=>{typeof e=="string"?t.append(r,e):t.append(r,JSON.stringify(e));},R={bodySerializer:t=>{let r=new FormData;return Object.entries(t).forEach(([e,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>O(r,e,i)):O(r,e,s));}),r}},$={bodySerializer:t=>JSON.stringify(t,(r,e)=>typeof e=="bigint"?e.toString():e)},q={bodySerializer:t=>{let r=new URLSearchParams;return Object.entries(t).forEach(([e,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>z(r,e,i)):z(r,e,s));}),r.toString()}},P={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},v=Object.entries(P),A=(t,r)=>{r||(r=new Map);for(let e of t)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&A(e.args,r);return r},T=t=>{for(let[r,e]of Object.entries(t))e&&typeof e=="object"&&!Object.keys(e).length&&delete t[r];},E=(t,r)=>{let e={body:{},headers:{},path:{},query:{}},s=A(r),i;for(let[l,o]of t.entries())if(r[l]&&(i=r[l]),!!i)if("in"in i)if(i.key){let n=s.get(i.key),a=n.map||i.key;e[n.in][a]=o;}else e.body=o;else for(let[n,a]of Object.entries(o??{})){let u=s.get(n);if(u){let c=u.map||n;e[u.in][c]=a;}else {let c=v.find(([f])=>n.startsWith(f));if(c){let[f,d]=c;e[d][n.slice(f.length)]=a;}else for(let[f,d]of Object.entries(i.allowExtra??{}))if(d){e[f][n]=a;break}}}return T(e),e},U=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},D=t=>{switch(t){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},H=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},m=({allowReserved:t,explode:r,name:e,style:s,value:i})=>{if(!r){let n=(t?i:i.map(a=>encodeURIComponent(a))).join(D(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${e}=${n}`;case "simple":return n;default:return `${e}=${n}`}}let l=U(s),o=i.map(n=>s==="label"||s==="simple"?t?n:encodeURIComponent(n):p({allowReserved:t,name:e,value:n})).join(l);return s==="label"||s==="matrix"?l+o:o},p=({allowReserved:t,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${t?e:encodeURIComponent(e)}`},g=({allowReserved:t,explode:r,name:e,style:s,value:i})=>{if(i instanceof Date)return `${e}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let n=[];Object.entries(i).forEach(([u,c])=>{n=[...n,u,t?c:encodeURIComponent(c)];});let a=n.join(",");switch(s){case "form":return `${e}=${a}`;case "label":return `.${a}`;case "matrix":return `;${e}=${a}`;default:return a}}let l=H(s),o=Object.entries(i).map(([n,a])=>p({allowReserved:t,name:s==="deepObject"?`${e}[${n}]`:n,value:a})).join(l);return s==="label"||s==="matrix"?l+o:o};var B=/\{[^{}]+\}/g,W=({path:t,url:r})=>{let e=r,s=r.match(B);if(s)for(let i of s){let l=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(l=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let a=t[o];if(a==null)continue;if(Array.isArray(a)){e=e.replace(i,m({explode:l,name:o,style:n,value:a}));continue}if(typeof a=="object"){e=e.replace(i,g({explode:l,name:o,style:n,value:a}));continue}if(n==="matrix"){e=e.replace(i,`;${p({name:o,value:a})}`);continue}let u=encodeURIComponent(n==="label"?`.${a}`:a);e=e.replace(i,u);}return e},I=({allowReserved:t,array:r,object:e}={})=>i=>{let l=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let a=m({allowReserved:t,explode:true,name:o,style:"form",value:n,...r});a&&l.push(a);}else if(typeof n=="object"){let a=g({allowReserved:t,explode:true,name:o,style:"deepObject",value:n,...e});a&&l.push(a);}else {let a=p({allowReserved:t,name:o,value:n});a&&l.push(a);}}return l.join("&")},j=async({security:t,...r})=>{for(let e of t){let s=await w(e,r.auth);if(!s)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":{let l=`${i}=${s}`;"Cookie"in r.headers&&r.headers.Cookie?r.headers.Cookie=`${r.headers.Cookie}; ${l}`:r.headers.Cookie=l;break}case "header":default:r.headers[i]=s;break}return}},b=t=>N({path:t.path,query:t.paramsSerializer?void 0:t.query,querySerializer:typeof t.querySerializer=="function"?t.querySerializer:I(t.querySerializer),url:t.url}),N=({path:t,query:r,querySerializer:e,url:s})=>{let l=s.startsWith("/")?s:`/${s}`;t&&(l=W({path:t,url:l}));let o=r?e(r):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(l+=`?${o}`),l},C=(t,r)=>{let e={...t,...r};return e.headers=h(t.headers,r.headers),e},Q=["common","delete","get","head","patch","post","put"],h=(...t)=>{let r={};for(let e of t){if(!e||typeof e!="object")continue;let s=Object.entries(e);for(let[i,l]of s)if(Q.includes(i)&&typeof l=="object")r[i]={...r[i],...l};else if(l===null)delete r[i];else if(Array.isArray(l))for(let o of l)r[i]=[...r[i]??[],o];else l!==void 0&&(r[i]=typeof l=="object"?JSON.stringify(l):l);}return r},S=(t={})=>({...t});var _=(t={})=>{let r=C(S(),t),{auth:e,...s}=r,i=L__default.default.create(s),l=()=>({...r}),o=a=>(r=C(r,a),i.defaults={...i.defaults,...r,headers:h(i.defaults.headers,r.headers)},l()),n=async a=>{let u={...r,...a,axios:a.axios??r.axios??i,headers:h(r.headers,a.headers)};u.security&&await j({...u,security:u.security}),u.body&&u.bodySerializer&&(u.body=u.bodySerializer(u.body));let c=b(u);try{let f=u.axios,{auth:d,...k}=u,x=await f({...k,baseURL:u.baseURL,data:u.body,headers:u.headers,params:u.paramsSerializer?u.query:void 0,url:c}),{data:y}=x;return u.responseType==="json"&&(u.responseValidator&&await u.responseValidator(y),u.responseTransformer&&(y=await u.responseTransformer(y))),{...x,data:y??{}}}catch(f){let d=f;if(u.throwOnError)throw d;return d.error=d.response?.data??{},d}};return {buildUrl:b,delete:a=>n({...a,method:"DELETE"}),get:a=>n({...a,method:"GET"}),getConfig:l,head:a=>n({...a,method:"HEAD"}),instance:i,options:a=>n({...a,method:"OPTIONS"}),patch:a=>n({...a,method:"PATCH"}),post:a=>n({...a,method:"POST"}),put:a=>n({...a,method:"PUT"}),request:n,setConfig:o}};exports.buildClientParams=E;exports.createClient=_;exports.createConfig=S;exports.formDataBodySerializer=R;exports.jsonBodySerializer=$;exports.urlSearchParamsBodySerializer=q;//# sourceMappingURL=index.cjs.map 1 + 'use strict';var L=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var L__default=/*#__PURE__*/_interopDefault(L);var w=async(t,r)=>{let e=typeof r=="function"?await r(t):r;if(e)return t.scheme==="bearer"?`Bearer ${e}`:t.scheme==="basic"?`Basic ${btoa(e)}`:e},O=(t,r,e)=>{typeof e=="string"||e instanceof Blob?t.append(r,e):t.append(r,JSON.stringify(e));},z=(t,r,e)=>{typeof e=="string"?t.append(r,e):t.append(r,JSON.stringify(e));},R={bodySerializer:t=>{let r=new FormData;return Object.entries(t).forEach(([e,n])=>{n!=null&&(Array.isArray(n)?n.forEach(i=>O(r,e,i)):O(r,e,n));}),r}},$={bodySerializer:t=>JSON.stringify(t,(r,e)=>typeof e=="bigint"?e.toString():e)},q={bodySerializer:t=>{let r=new URLSearchParams;return Object.entries(t).forEach(([e,n])=>{n!=null&&(Array.isArray(n)?n.forEach(i=>z(r,e,i)):z(r,e,n));}),r.toString()}},v={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},P=Object.entries(v),A=(t,r)=>{r||(r=new Map);for(let e of t)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&A(e.args,r);return r},T=t=>{for(let[r,e]of Object.entries(t))e&&typeof e=="object"&&!Object.keys(e).length&&delete t[r];},E=(t,r)=>{let e={body:{},headers:{},path:{},query:{}},n=A(r),i;for(let[l,o]of t.entries())if(r[l]&&(i=r[l]),!!i)if("in"in i)if(i.key){let s=n.get(i.key),a=s.map||i.key;e[s.in][a]=o;}else e.body=o;else for(let[s,a]of Object.entries(o??{})){let u=n.get(s);if(u){let d=u.map||s;e[u.in][d]=a;}else {let d=P.find(([c])=>s.startsWith(c));if(d){let[c,f]=d;e[f][s.slice(c.length)]=a;}else for(let[c,f]of Object.entries(i.allowExtra??{}))if(f){e[c][s]=a;break}}}return T(e),e},U=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},D=t=>{switch(t){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},H=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},m=({allowReserved:t,explode:r,name:e,style:n,value:i})=>{if(!r){let s=(t?i:i.map(a=>encodeURIComponent(a))).join(D(n));switch(n){case "label":return `.${s}`;case "matrix":return `;${e}=${s}`;case "simple":return s;default:return `${e}=${s}`}}let l=U(n),o=i.map(s=>n==="label"||n==="simple"?t?s:encodeURIComponent(s):p({allowReserved:t,name:e,value:s})).join(l);return n==="label"||n==="matrix"?l+o:o},p=({allowReserved:t,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${t?e:encodeURIComponent(e)}`},g=({allowReserved:t,explode:r,name:e,style:n,value:i,valueOnly:l})=>{if(i instanceof Date)return l?i.toISOString():`${e}=${i.toISOString()}`;if(n!=="deepObject"&&!r){let a=[];Object.entries(i).forEach(([d,c])=>{a=[...a,d,t?c:encodeURIComponent(c)];});let u=a.join(",");switch(n){case "form":return `${e}=${u}`;case "label":return `.${u}`;case "matrix":return `;${e}=${u}`;default:return u}}let o=H(n),s=Object.entries(i).map(([a,u])=>p({allowReserved:t,name:n==="deepObject"?`${e}[${a}]`:a,value:u})).join(o);return n==="label"||n==="matrix"?o+s:s};var B=/\{[^{}]+\}/g,I=({path:t,url:r})=>{let e=r,n=r.match(B);if(n)for(let i of n){let l=false,o=i.substring(1,i.length-1),s="simple";o.endsWith("*")&&(l=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),s="label"):o.startsWith(";")&&(o=o.substring(1),s="matrix");let a=t[o];if(a==null)continue;if(Array.isArray(a)){e=e.replace(i,m({explode:l,name:o,style:s,value:a}));continue}if(typeof a=="object"){e=e.replace(i,g({explode:l,name:o,style:s,value:a,valueOnly:true}));continue}if(s==="matrix"){e=e.replace(i,`;${p({name:o,value:a})}`);continue}let u=encodeURIComponent(s==="label"?`.${a}`:a);e=e.replace(i,u);}return e},W=({allowReserved:t,array:r,object:e}={})=>i=>{let l=[];if(i&&typeof i=="object")for(let o in i){let s=i[o];if(s!=null)if(Array.isArray(s)){let a=m({allowReserved:t,explode:true,name:o,style:"form",value:s,...r});a&&l.push(a);}else if(typeof s=="object"){let a=g({allowReserved:t,explode:true,name:o,style:"deepObject",value:s,...e});a&&l.push(a);}else {let a=p({allowReserved:t,name:o,value:s});a&&l.push(a);}}return l.join("&")},j=async({security:t,...r})=>{for(let e of t){let n=await w(e,r.auth);if(!n)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=n;break;case "cookie":{let l=`${i}=${n}`;"Cookie"in r.headers&&r.headers.Cookie?r.headers.Cookie=`${r.headers.Cookie}; ${l}`:r.headers.Cookie=l;break}case "header":default:r.headers[i]=n;break}return}},b=t=>N({path:t.path,query:t.paramsSerializer?void 0:t.query,querySerializer:typeof t.querySerializer=="function"?t.querySerializer:W(t.querySerializer),url:t.url}),N=({path:t,query:r,querySerializer:e,url:n})=>{let l=n.startsWith("/")?n:`/${n}`;t&&(l=I({path:t,url:l}));let o=r?e(r):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(l+=`?${o}`),l},C=(t,r)=>{let e={...t,...r};return e.headers=h(t.headers,r.headers),e},Q=["common","delete","get","head","patch","post","put"],h=(...t)=>{let r={};for(let e of t){if(!e||typeof e!="object")continue;let n=Object.entries(e);for(let[i,l]of n)if(Q.includes(i)&&typeof l=="object")r[i]={...r[i],...l};else if(l===null)delete r[i];else if(Array.isArray(l))for(let o of l)r[i]=[...r[i]??[],o];else l!==void 0&&(r[i]=typeof l=="object"?JSON.stringify(l):l);}return r},S=(t={})=>({...t});var _=(t={})=>{let r=C(S(),t),{auth:e,...n}=r,i=L__default.default.create(n),l=()=>({...r}),o=a=>(r=C(r,a),i.defaults={...i.defaults,...r,headers:h(i.defaults.headers,r.headers)},l()),s=async a=>{let u={...r,...a,axios:a.axios??r.axios??i,headers:h(r.headers,a.headers)};u.security&&await j({...u,security:u.security}),u.body&&u.bodySerializer&&(u.body=u.bodySerializer(u.body));let d=b(u);try{let c=u.axios,{auth:f,...k}=u,x=await c({...k,baseURL:u.baseURL,data:u.body,headers:u.headers,params:u.paramsSerializer?u.query:void 0,url:d}),{data:y}=x;return u.responseType==="json"&&(u.responseValidator&&await u.responseValidator(y),u.responseTransformer&&(y=await u.responseTransformer(y))),{...x,data:y??{}}}catch(c){let f=c;if(u.throwOnError)throw f;return f.error=f.response?.data??{},f}};return {buildUrl:b,delete:a=>s({...a,method:"DELETE"}),get:a=>s({...a,method:"GET"}),getConfig:l,head:a=>s({...a,method:"HEAD"}),instance:i,options:a=>s({...a,method:"OPTIONS"}),patch:a=>s({...a,method:"PATCH"}),post:a=>s({...a,method:"POST"}),put:a=>s({...a,method:"PUT"}),request:s,setConfig:o}};exports.buildClientParams=E;exports.createClient=_;exports.createConfig=S;exports.formDataBodySerializer=R;exports.jsonBodySerializer=$;exports.urlSearchParamsBodySerializer=q;//# sourceMappingURL=index.cjs.map 2 2 //# sourceMappingURL=index.cjs.map
+1 -1
packages/openapi-ts-tests/test/__snapshots__/3.1.x/clients/@hey-api/client-fetch/bundle/client/index.cjs
··· 1 - 'use strict';var I=async(n,r)=>{let e=typeof r=="function"?await r(n):r;if(e)return n.scheme==="bearer"?`Bearer ${e}`:n.scheme==="basic"?`Basic ${btoa(e)}`:e},z=(n,r,e)=>{typeof e=="string"||e instanceof Blob?n.append(r,e):n.append(r,JSON.stringify(e));},A=(n,r,e)=>{typeof e=="string"?n.append(r,e):n.append(r,JSON.stringify(e));},T={bodySerializer:n=>{let r=new FormData;return Object.entries(n).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>z(r,e,i)):z(r,e,a));}),r}},O={bodySerializer:n=>JSON.stringify(n,(r,e)=>typeof e=="bigint"?e.toString():e)},_={bodySerializer:n=>{let r=new URLSearchParams;return Object.entries(n).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>A(r,e,i)):A(r,e,a));}),r.toString()}},U={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},D=Object.entries(U),P=(n,r)=>{r||(r=new Map);for(let e of n)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&P(e.args,r);return r},H=n=>{for(let[r,e]of Object.entries(n))e&&typeof e=="object"&&!Object.keys(e).length&&delete n[r];},W=(n,r)=>{let e={body:{},headers:{},path:{},query:{}},a=P(r),i;for(let[o,s]of n.entries())if(r[o]&&(i=r[o]),!!i)if("in"in i)if(i.key){let t=a.get(i.key),l=t.map||i.key;e[t.in][l]=s;}else e.body=s;else for(let[t,l]of Object.entries(s??{})){let f=a.get(t);if(f){let u=f.map||t;e[f.in][u]=l;}else {let u=D.find(([d])=>t.startsWith(d));if(u){let[d,c]=u;e[c][t.slice(d.length)]=l;}else for(let[d,c]of Object.entries(i.allowExtra??{}))if(c){e[d][t]=l;break}}}return H(e),e},B=n=>{switch(n){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},N=n=>{switch(n){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Q=n=>{switch(n){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},S=({allowReserved:n,explode:r,name:e,style:a,value:i})=>{if(!r){let t=(n?i:i.map(l=>encodeURIComponent(l))).join(N(a));switch(a){case "label":return `.${t}`;case "matrix":return `;${e}=${t}`;case "simple":return t;default:return `${e}=${t}`}}let o=B(a),s=i.map(t=>a==="label"||a==="simple"?n?t:encodeURIComponent(t):m({allowReserved:n,name:e,value:t})).join(o);return a==="label"||a==="matrix"?o+s:s},m=({allowReserved:n,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${n?e:encodeURIComponent(e)}`},q=({allowReserved:n,explode:r,name:e,style:a,value:i})=>{if(i instanceof Date)return `${e}=${i.toISOString()}`;if(a!=="deepObject"&&!r){let t=[];Object.entries(i).forEach(([f,u])=>{t=[...t,f,n?u:encodeURIComponent(u)];});let l=t.join(",");switch(a){case "form":return `${e}=${l}`;case "label":return `.${l}`;case "matrix":return `;${e}=${l}`;default:return l}}let o=Q(a),s=Object.entries(i).map(([t,l])=>m({allowReserved:n,name:a==="deepObject"?`${e}[${t}]`:t,value:l})).join(o);return a==="label"||a==="matrix"?o+s:s};var J=/\{[^{}]+\}/g,M=({path:n,url:r})=>{let e=r,a=r.match(J);if(a)for(let i of a){let o=false,s=i.substring(1,i.length-1),t="simple";s.endsWith("*")&&(o=true,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),t="label"):s.startsWith(";")&&(s=s.substring(1),t="matrix");let l=n[s];if(l==null)continue;if(Array.isArray(l)){e=e.replace(i,S({explode:o,name:s,style:t,value:l}));continue}if(typeof l=="object"){e=e.replace(i,q({explode:o,name:s,style:t,value:l}));continue}if(t==="matrix"){e=e.replace(i,`;${m({name:s,value:l})}`);continue}let f=encodeURIComponent(t==="label"?`.${l}`:l);e=e.replace(i,f);}return e},k=({allowReserved:n,array:r,object:e}={})=>i=>{let o=[];if(i&&typeof i=="object")for(let s in i){let t=i[s];if(t!=null)if(Array.isArray(t)){let l=S({allowReserved:n,explode:true,name:s,style:"form",value:t,...r});l&&o.push(l);}else if(typeof t=="object"){let l=q({allowReserved:n,explode:true,name:s,style:"deepObject",value:t,...e});l&&o.push(l);}else {let l=m({allowReserved:n,name:s,value:t});l&&o.push(l);}}return o.join("&")},E=n=>{if(!n)return "stream";let r=n.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(e=>r.startsWith(e)))return "blob";if(r.startsWith("text/"))return "text"}},$=async({security:n,...r})=>{for(let e of n){let a=await I(e,r.auth);if(!a)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=a;break;case "cookie":r.headers.append("Cookie",`${i}=${a}`);break;case "header":default:r.headers.set(i,a);break}return}},C=n=>L({baseUrl:n.baseUrl,path:n.path,query:n.query,querySerializer:typeof n.querySerializer=="function"?n.querySerializer:k(n.querySerializer),url:n.url}),L=({baseUrl:n,path:r,query:e,querySerializer:a,url:i})=>{let o=i.startsWith("/")?i:`/${i}`,s=(n??"")+o;r&&(s=M({path:r,url:s}));let t=e?a(e):"";return t.startsWith("?")&&(t=t.substring(1)),t&&(s+=`?${t}`),s},x=(n,r)=>{let e={...n,...r};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=j(n.headers,r.headers),e},j=(...n)=>{let r=new Headers;for(let e of n){if(!e||typeof e!="object")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[i,o]of a)if(o===null)r.delete(i);else if(Array.isArray(o))for(let s of o)r.append(i,s);else o!==void 0&&r.set(i,typeof o=="object"?JSON.stringify(o):o);}return r},g=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let e=this.getInterceptorIndex(r);return !!this._fns[e]}eject(r){let e=this.getInterceptorIndex(r);this._fns[e]&&(this._fns[e]=null);}update(r,e){let a=this.getInterceptorIndex(r);return this._fns[a]?(this._fns[a]=e,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},v=()=>({error:new g,request:new g,response:new g}),V=k({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),F={"Content-Type":"application/json"},w=(n={})=>({...O,headers:F,parseAs:"auto",querySerializer:V,...n});var G=(n={})=>{let r=x(w(),n),e=()=>({...r}),a=s=>(r=x(r,s),e()),i=v(),o=async s=>{let t={...r,...s,fetch:s.fetch??r.fetch??globalThis.fetch,headers:j(r.headers,s.headers)};t.security&&await $({...t,security:t.security}),t.body&&t.bodySerializer&&(t.body=t.bodySerializer(t.body)),(t.body===void 0||t.body==="")&&t.headers.delete("Content-Type");let l=C(t),f={redirect:"follow",...t},u=new Request(l,f);for(let p of i.request._fns)p&&(u=await p(u,t));let d=t.fetch,c=await d(u);for(let p of i.response._fns)p&&(c=await p(c,u,t));let b={request:u,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return t.responseStyle==="data"?{}:{data:{},...b};let p=(t.parseAs==="auto"?E(c.headers.get("Content-Type")):t.parseAs)??"json";if(p==="stream")return t.responseStyle==="data"?c.body:{data:c.body,...b};let h=await c[p]();return p==="json"&&(t.responseValidator&&await t.responseValidator(h),t.responseTransformer&&(h=await t.responseTransformer(h))),t.responseStyle==="data"?h:{data:h,...b}}let R=await c.text();try{R=JSON.parse(R);}catch{}let y=R;for(let p of i.error._fns)p&&(y=await p(R,c,u,t));if(y=y||{},t.throwOnError)throw y;return t.responseStyle==="data"?void 0:{error:y,...b}};return {buildUrl:C,connect:s=>o({...s,method:"CONNECT"}),delete:s=>o({...s,method:"DELETE"}),get:s=>o({...s,method:"GET"}),getConfig:e,head:s=>o({...s,method:"HEAD"}),interceptors:i,options:s=>o({...s,method:"OPTIONS"}),patch:s=>o({...s,method:"PATCH"}),post:s=>o({...s,method:"POST"}),put:s=>o({...s,method:"PUT"}),request:o,setConfig:a,trace:s=>o({...s,method:"TRACE"})}};exports.buildClientParams=W;exports.createClient=G;exports.createConfig=w;exports.formDataBodySerializer=T;exports.jsonBodySerializer=O;exports.urlSearchParamsBodySerializer=_;//# sourceMappingURL=index.cjs.map 1 + 'use strict';var A=async(s,r)=>{let e=typeof r=="function"?await r(s):r;if(e)return s.scheme==="bearer"?`Bearer ${e}`:s.scheme==="basic"?`Basic ${btoa(e)}`:e},z=(s,r,e)=>{typeof e=="string"||e instanceof Blob?s.append(r,e):s.append(r,JSON.stringify(e));},I=(s,r,e)=>{typeof e=="string"?s.append(r,e):s.append(r,JSON.stringify(e));},T={bodySerializer:s=>{let r=new FormData;return Object.entries(s).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>z(r,e,i)):z(r,e,a));}),r}},O={bodySerializer:s=>JSON.stringify(s,(r,e)=>typeof e=="bigint"?e.toString():e)},_={bodySerializer:s=>{let r=new URLSearchParams;return Object.entries(s).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>I(r,e,i)):I(r,e,a));}),r.toString()}},U={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},D=Object.entries(U),P=(s,r)=>{r||(r=new Map);for(let e of s)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&P(e.args,r);return r},H=s=>{for(let[r,e]of Object.entries(s))e&&typeof e=="object"&&!Object.keys(e).length&&delete s[r];},W=(s,r)=>{let e={body:{},headers:{},path:{},query:{}},a=P(r),i;for(let[o,n]of s.entries())if(r[o]&&(i=r[o]),!!i)if("in"in i)if(i.key){let t=a.get(i.key),l=t.map||i.key;e[t.in][l]=n;}else e.body=n;else for(let[t,l]of Object.entries(n??{})){let u=a.get(t);if(u){let p=u.map||t;e[u.in][p]=l;}else {let p=D.find(([d])=>t.startsWith(d));if(p){let[d,c]=p;e[c][t.slice(d.length)]=l;}else for(let[d,c]of Object.entries(i.allowExtra??{}))if(c){e[d][t]=l;break}}}return H(e),e},B=s=>{switch(s){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},N=s=>{switch(s){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Q=s=>{switch(s){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},S=({allowReserved:s,explode:r,name:e,style:a,value:i})=>{if(!r){let t=(s?i:i.map(l=>encodeURIComponent(l))).join(N(a));switch(a){case "label":return `.${t}`;case "matrix":return `;${e}=${t}`;case "simple":return t;default:return `${e}=${t}`}}let o=B(a),n=i.map(t=>a==="label"||a==="simple"?s?t:encodeURIComponent(t):m({allowReserved:s,name:e,value:t})).join(o);return a==="label"||a==="matrix"?o+n:n},m=({allowReserved:s,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${s?e:encodeURIComponent(e)}`},q=({allowReserved:s,explode:r,name:e,style:a,value:i,valueOnly:o})=>{if(i instanceof Date)return o?i.toISOString():`${e}=${i.toISOString()}`;if(a!=="deepObject"&&!r){let l=[];Object.entries(i).forEach(([p,d])=>{l=[...l,p,s?d:encodeURIComponent(d)];});let u=l.join(",");switch(a){case "form":return `${e}=${u}`;case "label":return `.${u}`;case "matrix":return `;${e}=${u}`;default:return u}}let n=Q(a),t=Object.entries(i).map(([l,u])=>m({allowReserved:s,name:a==="deepObject"?`${e}[${l}]`:l,value:u})).join(n);return a==="label"||a==="matrix"?n+t:t};var J=/\{[^{}]+\}/g,M=({path:s,url:r})=>{let e=r,a=r.match(J);if(a)for(let i of a){let o=false,n=i.substring(1,i.length-1),t="simple";n.endsWith("*")&&(o=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),t="label"):n.startsWith(";")&&(n=n.substring(1),t="matrix");let l=s[n];if(l==null)continue;if(Array.isArray(l)){e=e.replace(i,S({explode:o,name:n,style:t,value:l}));continue}if(typeof l=="object"){e=e.replace(i,q({explode:o,name:n,style:t,value:l,valueOnly:true}));continue}if(t==="matrix"){e=e.replace(i,`;${m({name:n,value:l})}`);continue}let u=encodeURIComponent(t==="label"?`.${l}`:l);e=e.replace(i,u);}return e},k=({allowReserved:s,array:r,object:e}={})=>i=>{let o=[];if(i&&typeof i=="object")for(let n in i){let t=i[n];if(t!=null)if(Array.isArray(t)){let l=S({allowReserved:s,explode:true,name:n,style:"form",value:t,...r});l&&o.push(l);}else if(typeof t=="object"){let l=q({allowReserved:s,explode:true,name:n,style:"deepObject",value:t,...e});l&&o.push(l);}else {let l=m({allowReserved:s,name:n,value:t});l&&o.push(l);}}return o.join("&")},E=s=>{if(!s)return "stream";let r=s.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(e=>r.startsWith(e)))return "blob";if(r.startsWith("text/"))return "text"}},$=async({security:s,...r})=>{for(let e of s){let a=await A(e,r.auth);if(!a)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=a;break;case "cookie":r.headers.append("Cookie",`${i}=${a}`);break;case "header":default:r.headers.set(i,a);break}return}},C=s=>L({baseUrl:s.baseUrl,path:s.path,query:s.query,querySerializer:typeof s.querySerializer=="function"?s.querySerializer:k(s.querySerializer),url:s.url}),L=({baseUrl:s,path:r,query:e,querySerializer:a,url:i})=>{let o=i.startsWith("/")?i:`/${i}`,n=(s??"")+o;r&&(n=M({path:r,url:n}));let t=e?a(e):"";return t.startsWith("?")&&(t=t.substring(1)),t&&(n+=`?${t}`),n},x=(s,r)=>{let e={...s,...r};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=j(s.headers,r.headers),e},j=(...s)=>{let r=new Headers;for(let e of s){if(!e||typeof e!="object")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[i,o]of a)if(o===null)r.delete(i);else if(Array.isArray(o))for(let n of o)r.append(i,n);else o!==void 0&&r.set(i,typeof o=="object"?JSON.stringify(o):o);}return r},g=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let e=this.getInterceptorIndex(r);return !!this._fns[e]}eject(r){let e=this.getInterceptorIndex(r);this._fns[e]&&(this._fns[e]=null);}update(r,e){let a=this.getInterceptorIndex(r);return this._fns[a]?(this._fns[a]=e,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},v=()=>({error:new g,request:new g,response:new g}),V=k({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),F={"Content-Type":"application/json"},w=(s={})=>({...O,headers:F,parseAs:"auto",querySerializer:V,...s});var G=(s={})=>{let r=x(w(),s),e=()=>({...r}),a=n=>(r=x(r,n),e()),i=v(),o=async n=>{let t={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:j(r.headers,n.headers)};t.security&&await $({...t,security:t.security}),t.body&&t.bodySerializer&&(t.body=t.bodySerializer(t.body)),(t.body===void 0||t.body==="")&&t.headers.delete("Content-Type");let l=C(t),u={redirect:"follow",...t},p=new Request(l,u);for(let f of i.request._fns)f&&(p=await f(p,t));let d=t.fetch,c=await d(p);for(let f of i.response._fns)f&&(c=await f(c,p,t));let b={request:p,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return t.responseStyle==="data"?{}:{data:{},...b};let f=(t.parseAs==="auto"?E(c.headers.get("Content-Type")):t.parseAs)??"json";if(f==="stream")return t.responseStyle==="data"?c.body:{data:c.body,...b};let h=await c[f]();return f==="json"&&(t.responseValidator&&await t.responseValidator(h),t.responseTransformer&&(h=await t.responseTransformer(h))),t.responseStyle==="data"?h:{data:h,...b}}let R=await c.text();try{R=JSON.parse(R);}catch{}let y=R;for(let f of i.error._fns)f&&(y=await f(R,c,p,t));if(y=y||{},t.throwOnError)throw y;return t.responseStyle==="data"?void 0:{error:y,...b}};return {buildUrl:C,connect:n=>o({...n,method:"CONNECT"}),delete:n=>o({...n,method:"DELETE"}),get:n=>o({...n,method:"GET"}),getConfig:e,head:n=>o({...n,method:"HEAD"}),interceptors:i,options:n=>o({...n,method:"OPTIONS"}),patch:n=>o({...n,method:"PATCH"}),post:n=>o({...n,method:"POST"}),put:n=>o({...n,method:"PUT"}),request:o,setConfig:a,trace:n=>o({...n,method:"TRACE"})}};exports.buildClientParams=W;exports.createClient=G;exports.createConfig=w;exports.formDataBodySerializer=T;exports.jsonBodySerializer=O;exports.urlSearchParamsBodySerializer=_;//# sourceMappingURL=index.cjs.map 2 2 //# sourceMappingURL=index.cjs.map
+1 -1
packages/openapi-ts-tests/test/__snapshots__/3.1.x/clients/@hey-api/client-next/bundle/client/index.cjs
··· 1 - 'use strict';var A=async(n,r)=>{let e=typeof r=="function"?await r(n):r;if(e)return n.scheme==="bearer"?`Bearer ${e}`:n.scheme==="basic"?`Basic ${btoa(e)}`:e},w=(n,r,e)=>{typeof e=="string"||e instanceof Blob?n.append(r,e):n.append(r,JSON.stringify(e));},z=(n,r,e)=>{typeof e=="string"?n.append(r,e):n.append(r,JSON.stringify(e));},$={bodySerializer:n=>{let r=new FormData;return Object.entries(n).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>w(r,e,i)):w(r,e,a));}),r}},b={bodySerializer:n=>JSON.stringify(n,(r,e)=>typeof e=="bigint"?e.toString():e)},v={bodySerializer:n=>{let r=new URLSearchParams;return Object.entries(n).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>z(r,e,i)):z(r,e,a));}),r.toString()}},T={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},_=Object.entries(T),I=(n,r)=>{r||(r=new Map);for(let e of n)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&I(e.args,r);return r},U=n=>{for(let[r,e]of Object.entries(n))e&&typeof e=="object"&&!Object.keys(e).length&&delete n[r];},D=(n,r)=>{let e={body:{},headers:{},path:{},query:{}},a=I(r),i;for(let[o,s]of n.entries())if(r[o]&&(i=r[o]),!!i)if("in"in i)if(i.key){let t=a.get(i.key),l=t.map||i.key;e[t.in][l]=s;}else e.body=s;else for(let[t,l]of Object.entries(s??{})){let f=a.get(t);if(f){let c=f.map||t;e[f.in][c]=l;}else {let c=_.find(([p])=>t.startsWith(p));if(c){let[p,d]=c;e[d][t.slice(p.length)]=l;}else for(let[p,d]of Object.entries(i.allowExtra??{}))if(d){e[p][t]=l;break}}}return U(e),e},H=n=>{switch(n){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},W=n=>{switch(n){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},B=n=>{switch(n){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},O=({allowReserved:n,explode:r,name:e,style:a,value:i})=>{if(!r){let t=(n?i:i.map(l=>encodeURIComponent(l))).join(W(a));switch(a){case "label":return `.${t}`;case "matrix":return `;${e}=${t}`;case "simple":return t;default:return `${e}=${t}`}}let o=H(a),s=i.map(t=>a==="label"||a==="simple"?n?t:encodeURIComponent(t):h({allowReserved:n,name:e,value:t})).join(o);return a==="label"||a==="matrix"?o+s:s},h=({allowReserved:n,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${n?e:encodeURIComponent(e)}`},C=({allowReserved:n,explode:r,name:e,style:a,value:i})=>{if(i instanceof Date)return `${e}=${i.toISOString()}`;if(a!=="deepObject"&&!r){let t=[];Object.entries(i).forEach(([f,c])=>{t=[...t,f,n?c:encodeURIComponent(c)];});let l=t.join(",");switch(a){case "form":return `${e}=${l}`;case "label":return `.${l}`;case "matrix":return `;${e}=${l}`;default:return l}}let o=B(a),s=Object.entries(i).map(([t,l])=>h({allowReserved:n,name:a==="deepObject"?`${e}[${t}]`:t,value:l})).join(o);return a==="label"||a==="matrix"?o+s:s};var N=/\{[^{}]+\}/g,Q=({path:n,url:r})=>{let e=r,a=r.match(N);if(a)for(let i of a){let o=false,s=i.substring(1,i.length-1),t="simple";s.endsWith("*")&&(o=true,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),t="label"):s.startsWith(";")&&(s=s.substring(1),t="matrix");let l=n[s];if(l==null)continue;if(Array.isArray(l)){e=e.replace(i,O({explode:o,name:s,style:t,value:l}));continue}if(typeof l=="object"){e=e.replace(i,C({explode:o,name:s,style:t,value:l}));continue}if(t==="matrix"){e=e.replace(i,`;${h({name:s,value:l})}`);continue}let f=encodeURIComponent(t==="label"?`.${l}`:l);e=e.replace(i,f);}return e},q=({allowReserved:n,array:r,object:e}={})=>i=>{let o=[];if(i&&typeof i=="object")for(let s in i){let t=i[s];if(t!=null)if(Array.isArray(t)){let l=O({allowReserved:n,explode:true,name:s,style:"form",value:t,...r});l&&o.push(l);}else if(typeof t=="object"){let l=C({allowReserved:n,explode:true,name:s,style:"deepObject",value:t,...e});l&&o.push(l);}else {let l=h({allowReserved:n,name:s,value:t});l&&o.push(l);}}return o.join("&")},P=n=>{if(!n)return "stream";let r=n.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(e=>r.startsWith(e)))return "blob";if(r.startsWith("text/"))return "text"}},k=async({security:n,...r})=>{for(let e of n){let a=await A(e,r.auth);if(!a)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=a;break;case "cookie":r.headers.append("Cookie",`${i}=${a}`);break;case "header":default:r.headers.set(i,a);break}return}},S=n=>J({baseUrl:n.baseUrl,path:n.path,query:n.query,querySerializer:typeof n.querySerializer=="function"?n.querySerializer:q(n.querySerializer),url:n.url}),J=({baseUrl:n,path:r,query:e,querySerializer:a,url:i})=>{let o=i.startsWith("/")?i:`/${i}`,s=(n??"")+o;r&&(s=Q({path:r,url:s}));let t=e?a(e):"";return t.startsWith("?")&&(t=t.substring(1)),t&&(s+=`?${t}`),s},x=(n,r)=>{let e={...n,...r};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=R(n.headers,r.headers),e},R=(...n)=>{let r=new Headers;for(let e of n){if(!e||typeof e!="object")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[i,o]of a)if(o===null)r.delete(i);else if(Array.isArray(o))for(let s of o)r.append(i,s);else o!==void 0&&r.set(i,typeof o=="object"?JSON.stringify(o):o);}return r},m=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let e=this.getInterceptorIndex(r);return !!this._fns[e]}eject(r){let e=this.getInterceptorIndex(r);this._fns[e]&&(this._fns[e]=null);}update(r,e){let a=this.getInterceptorIndex(r);return this._fns[a]?(this._fns[a]=e,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},E=()=>({error:new m,request:new m,response:new m}),M=q({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),L={"Content-Type":"application/json"},j=(n={})=>({...b,headers:L,parseAs:"auto",querySerializer:M,...n});var V=(n={})=>{let r=x(j(),n),e=()=>({...r}),a=s=>(r=x(r,s),e()),i=E(),o=async s=>{let t={...r,...s,fetch:s.fetch??r.fetch??globalThis.fetch,headers:R(r.headers,s.headers)};t.security&&await k({...t,security:t.security}),t.body&&t.bodySerializer&&(t.body=t.bodySerializer(t.body)),(t.body===void 0||t.body==="")&&t.headers.delete("Content-Type");for(let u of i.request._fns)u&&await u(t);let l=S(t),f=t.fetch,c=await f(l,{...t,body:t.body});for(let u of i.response._fns)u&&(c=await u(c,t));let p={response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return {data:{},...p};let u=(t.parseAs==="auto"?P(c.headers.get("Content-Type")):t.parseAs)??"json";if(u==="stream")return {data:c.body,...p};let g=await c[u]();return u==="json"&&(t.responseValidator&&await t.responseValidator(g),t.responseTransformer&&(g=await t.responseTransformer(g))),{data:g,...p}}let d=await c.text();try{d=JSON.parse(d);}catch{}let y=d;for(let u of i.error._fns)u&&(y=await u(d,c,t));if(y=y||{},t.throwOnError)throw y;return {error:y,...p}};return {buildUrl:S,connect:s=>o({...s,method:"CONNECT"}),delete:s=>o({...s,method:"DELETE"}),get:s=>o({...s,method:"GET"}),getConfig:e,head:s=>o({...s,method:"HEAD"}),interceptors:i,options:s=>o({...s,method:"OPTIONS"}),patch:s=>o({...s,method:"PATCH"}),post:s=>o({...s,method:"POST"}),put:s=>o({...s,method:"PUT"}),request:o,setConfig:a,trace:s=>o({...s,method:"TRACE"})}};exports.buildClientParams=D;exports.createClient=V;exports.createConfig=j;exports.formDataBodySerializer=$;exports.jsonBodySerializer=b;exports.urlSearchParamsBodySerializer=v;//# sourceMappingURL=index.cjs.map 1 + 'use strict';var A=async(t,r)=>{let e=typeof r=="function"?await r(t):r;if(e)return t.scheme==="bearer"?`Bearer ${e}`:t.scheme==="basic"?`Basic ${btoa(e)}`:e},w=(t,r,e)=>{typeof e=="string"||e instanceof Blob?t.append(r,e):t.append(r,JSON.stringify(e));},z=(t,r,e)=>{typeof e=="string"?t.append(r,e):t.append(r,JSON.stringify(e));},v={bodySerializer:t=>{let r=new FormData;return Object.entries(t).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>w(r,e,i)):w(r,e,a));}),r}},b={bodySerializer:t=>JSON.stringify(t,(r,e)=>typeof e=="bigint"?e.toString():e)},$={bodySerializer:t=>{let r=new URLSearchParams;return Object.entries(t).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>z(r,e,i)):z(r,e,a));}),r.toString()}},T={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},_=Object.entries(T),I=(t,r)=>{r||(r=new Map);for(let e of t)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&I(e.args,r);return r},U=t=>{for(let[r,e]of Object.entries(t))e&&typeof e=="object"&&!Object.keys(e).length&&delete t[r];},D=(t,r)=>{let e={body:{},headers:{},path:{},query:{}},a=I(r),i;for(let[o,s]of t.entries())if(r[o]&&(i=r[o]),!!i)if("in"in i)if(i.key){let n=a.get(i.key),l=n.map||i.key;e[n.in][l]=s;}else e.body=s;else for(let[n,l]of Object.entries(s??{})){let u=a.get(n);if(u){let c=u.map||n;e[u.in][c]=l;}else {let c=_.find(([p])=>n.startsWith(p));if(c){let[p,d]=c;e[d][n.slice(p.length)]=l;}else for(let[p,d]of Object.entries(i.allowExtra??{}))if(d){e[p][n]=l;break}}}return U(e),e},H=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},W=t=>{switch(t){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},B=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},O=({allowReserved:t,explode:r,name:e,style:a,value:i})=>{if(!r){let n=(t?i:i.map(l=>encodeURIComponent(l))).join(W(a));switch(a){case "label":return `.${n}`;case "matrix":return `;${e}=${n}`;case "simple":return n;default:return `${e}=${n}`}}let o=H(a),s=i.map(n=>a==="label"||a==="simple"?t?n:encodeURIComponent(n):h({allowReserved:t,name:e,value:n})).join(o);return a==="label"||a==="matrix"?o+s:s},h=({allowReserved:t,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${t?e:encodeURIComponent(e)}`},S=({allowReserved:t,explode:r,name:e,style:a,value:i,valueOnly:o})=>{if(i instanceof Date)return o?i.toISOString():`${e}=${i.toISOString()}`;if(a!=="deepObject"&&!r){let l=[];Object.entries(i).forEach(([c,p])=>{l=[...l,c,t?p:encodeURIComponent(p)];});let u=l.join(",");switch(a){case "form":return `${e}=${u}`;case "label":return `.${u}`;case "matrix":return `;${e}=${u}`;default:return u}}let s=B(a),n=Object.entries(i).map(([l,u])=>h({allowReserved:t,name:a==="deepObject"?`${e}[${l}]`:l,value:u})).join(s);return a==="label"||a==="matrix"?s+n:n};var N=/\{[^{}]+\}/g,Q=({path:t,url:r})=>{let e=r,a=r.match(N);if(a)for(let i of a){let o=false,s=i.substring(1,i.length-1),n="simple";s.endsWith("*")&&(o=true,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),n="label"):s.startsWith(";")&&(s=s.substring(1),n="matrix");let l=t[s];if(l==null)continue;if(Array.isArray(l)){e=e.replace(i,O({explode:o,name:s,style:n,value:l}));continue}if(typeof l=="object"){e=e.replace(i,S({explode:o,name:s,style:n,value:l,valueOnly:true}));continue}if(n==="matrix"){e=e.replace(i,`;${h({name:s,value:l})}`);continue}let u=encodeURIComponent(n==="label"?`.${l}`:l);e=e.replace(i,u);}return e},q=({allowReserved:t,array:r,object:e}={})=>i=>{let o=[];if(i&&typeof i=="object")for(let s in i){let n=i[s];if(n!=null)if(Array.isArray(n)){let l=O({allowReserved:t,explode:true,name:s,style:"form",value:n,...r});l&&o.push(l);}else if(typeof n=="object"){let l=S({allowReserved:t,explode:true,name:s,style:"deepObject",value:n,...e});l&&o.push(l);}else {let l=h({allowReserved:t,name:s,value:n});l&&o.push(l);}}return o.join("&")},P=t=>{if(!t)return "stream";let r=t.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(e=>r.startsWith(e)))return "blob";if(r.startsWith("text/"))return "text"}},k=async({security:t,...r})=>{for(let e of t){let a=await A(e,r.auth);if(!a)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=a;break;case "cookie":r.headers.append("Cookie",`${i}=${a}`);break;case "header":default:r.headers.set(i,a);break}return}},C=t=>J({baseUrl:t.baseUrl,path:t.path,query:t.query,querySerializer:typeof t.querySerializer=="function"?t.querySerializer:q(t.querySerializer),url:t.url}),J=({baseUrl:t,path:r,query:e,querySerializer:a,url:i})=>{let o=i.startsWith("/")?i:`/${i}`,s=(t??"")+o;r&&(s=Q({path:r,url:s}));let n=e?a(e):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(s+=`?${n}`),s},x=(t,r)=>{let e={...t,...r};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=R(t.headers,r.headers),e},R=(...t)=>{let r=new Headers;for(let e of t){if(!e||typeof e!="object")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[i,o]of a)if(o===null)r.delete(i);else if(Array.isArray(o))for(let s of o)r.append(i,s);else o!==void 0&&r.set(i,typeof o=="object"?JSON.stringify(o):o);}return r},m=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let e=this.getInterceptorIndex(r);return !!this._fns[e]}eject(r){let e=this.getInterceptorIndex(r);this._fns[e]&&(this._fns[e]=null);}update(r,e){let a=this.getInterceptorIndex(r);return this._fns[a]?(this._fns[a]=e,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},E=()=>({error:new m,request:new m,response:new m}),M=q({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),L={"Content-Type":"application/json"},j=(t={})=>({...b,headers:L,parseAs:"auto",querySerializer:M,...t});var V=(t={})=>{let r=x(j(),t),e=()=>({...r}),a=s=>(r=x(r,s),e()),i=E(),o=async s=>{let n={...r,...s,fetch:s.fetch??r.fetch??globalThis.fetch,headers:R(r.headers,s.headers)};n.security&&await k({...n,security:n.security}),n.body&&n.bodySerializer&&(n.body=n.bodySerializer(n.body)),(n.body===void 0||n.body==="")&&n.headers.delete("Content-Type");for(let f of i.request._fns)f&&await f(n);let l=C(n),u=n.fetch,c=await u(l,{...n,body:n.body});for(let f of i.response._fns)f&&(c=await f(c,n));let p={response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return {data:{},...p};let f=(n.parseAs==="auto"?P(c.headers.get("Content-Type")):n.parseAs)??"json";if(f==="stream")return {data:c.body,...p};let g=await c[f]();return f==="json"&&(n.responseValidator&&await n.responseValidator(g),n.responseTransformer&&(g=await n.responseTransformer(g))),{data:g,...p}}let d=await c.text();try{d=JSON.parse(d);}catch{}let y=d;for(let f of i.error._fns)f&&(y=await f(d,c,n));if(y=y||{},n.throwOnError)throw y;return {error:y,...p}};return {buildUrl:C,connect:s=>o({...s,method:"CONNECT"}),delete:s=>o({...s,method:"DELETE"}),get:s=>o({...s,method:"GET"}),getConfig:e,head:s=>o({...s,method:"HEAD"}),interceptors:i,options:s=>o({...s,method:"OPTIONS"}),patch:s=>o({...s,method:"PATCH"}),post:s=>o({...s,method:"POST"}),put:s=>o({...s,method:"PUT"}),request:o,setConfig:a,trace:s=>o({...s,method:"TRACE"})}};exports.buildClientParams=D;exports.createClient=V;exports.createConfig=j;exports.formDataBodySerializer=v;exports.jsonBodySerializer=b;exports.urlSearchParamsBodySerializer=$;//# sourceMappingURL=index.cjs.map 2 2 //# sourceMappingURL=index.cjs.map
+1 -1
packages/openapi-ts-tests/test/__snapshots__/3.1.x/clients/client-custom/bundle/client/index.cjs
··· 1 - 'use strict';var I=async(n,r)=>{let e=typeof r=="function"?await r(n):r;if(e)return n.scheme==="bearer"?`Bearer ${e}`:n.scheme==="basic"?`Basic ${btoa(e)}`:e},z=(n,r,e)=>{typeof e=="string"||e instanceof Blob?n.append(r,e):n.append(r,JSON.stringify(e));},A=(n,r,e)=>{typeof e=="string"?n.append(r,e):n.append(r,JSON.stringify(e));},T={bodySerializer:n=>{let r=new FormData;return Object.entries(n).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>z(r,e,i)):z(r,e,a));}),r}},O={bodySerializer:n=>JSON.stringify(n,(r,e)=>typeof e=="bigint"?e.toString():e)},_={bodySerializer:n=>{let r=new URLSearchParams;return Object.entries(n).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>A(r,e,i)):A(r,e,a));}),r.toString()}},U={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},D=Object.entries(U),P=(n,r)=>{r||(r=new Map);for(let e of n)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&P(e.args,r);return r},H=n=>{for(let[r,e]of Object.entries(n))e&&typeof e=="object"&&!Object.keys(e).length&&delete n[r];},W=(n,r)=>{let e={body:{},headers:{},path:{},query:{}},a=P(r),i;for(let[o,s]of n.entries())if(r[o]&&(i=r[o]),!!i)if("in"in i)if(i.key){let t=a.get(i.key),l=t.map||i.key;e[t.in][l]=s;}else e.body=s;else for(let[t,l]of Object.entries(s??{})){let f=a.get(t);if(f){let u=f.map||t;e[f.in][u]=l;}else {let u=D.find(([d])=>t.startsWith(d));if(u){let[d,c]=u;e[c][t.slice(d.length)]=l;}else for(let[d,c]of Object.entries(i.allowExtra??{}))if(c){e[d][t]=l;break}}}return H(e),e},B=n=>{switch(n){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},N=n=>{switch(n){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Q=n=>{switch(n){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},q=({allowReserved:n,explode:r,name:e,style:a,value:i})=>{if(!r){let t=(n?i:i.map(l=>encodeURIComponent(l))).join(N(a));switch(a){case "label":return `.${t}`;case "matrix":return `;${e}=${t}`;case "simple":return t;default:return `${e}=${t}`}}let o=B(a),s=i.map(t=>a==="label"||a==="simple"?n?t:encodeURIComponent(t):h({allowReserved:n,name:e,value:t})).join(o);return a==="label"||a==="matrix"?o+s:s},h=({allowReserved:n,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${n?e:encodeURIComponent(e)}`},C=({allowReserved:n,explode:r,name:e,style:a,value:i})=>{if(i instanceof Date)return `${e}=${i.toISOString()}`;if(a!=="deepObject"&&!r){let t=[];Object.entries(i).forEach(([f,u])=>{t=[...t,f,n?u:encodeURIComponent(u)];});let l=t.join(",");switch(a){case "form":return `${e}=${l}`;case "label":return `.${l}`;case "matrix":return `;${e}=${l}`;default:return l}}let o=Q(a),s=Object.entries(i).map(([t,l])=>h({allowReserved:n,name:a==="deepObject"?`${e}[${t}]`:t,value:l})).join(o);return a==="label"||a==="matrix"?o+s:s};var J=/\{[^{}]+\}/g,M=({path:n,url:r})=>{let e=r,a=r.match(J);if(a)for(let i of a){let o=false,s=i.substring(1,i.length-1),t="simple";s.endsWith("*")&&(o=true,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),t="label"):s.startsWith(";")&&(s=s.substring(1),t="matrix");let l=n[s];if(l==null)continue;if(Array.isArray(l)){e=e.replace(i,q({explode:o,name:s,style:t,value:l}));continue}if(typeof l=="object"){e=e.replace(i,C({explode:o,name:s,style:t,value:l}));continue}if(t==="matrix"){e=e.replace(i,`;${h({name:s,value:l})}`);continue}let f=encodeURIComponent(t==="label"?`.${l}`:l);e=e.replace(i,f);}return e},k=({allowReserved:n,array:r,object:e}={})=>i=>{let o=[];if(i&&typeof i=="object")for(let s in i){let t=i[s];if(t!=null)if(Array.isArray(t)){let l=q({allowReserved:n,explode:true,name:s,style:"form",value:t,...r});l&&o.push(l);}else if(typeof t=="object"){let l=C({allowReserved:n,explode:true,name:s,style:"deepObject",value:t,...e});l&&o.push(l);}else {let l=h({allowReserved:n,name:s,value:t});l&&o.push(l);}}return o.join("&")},E=n=>{if(!n)return "stream";let r=n.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(e=>r.startsWith(e)))return "blob";if(r.startsWith("text/"))return "text"}},$=async({security:n,...r})=>{for(let e of n){let a=await I(e,r.auth);if(!a)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=a;break;case "cookie":r.headers.append("Cookie",`${i}=${a}`);break;case "header":default:r.headers.set(i,a);break}return}},S=n=>L({baseUrl:n.baseUrl,path:n.path,query:n.query,querySerializer:typeof n.querySerializer=="function"?n.querySerializer:k(n.querySerializer),url:n.url}),L=({baseUrl:n,path:r,query:e,querySerializer:a,url:i})=>{let o=i.startsWith("/")?i:`/${i}`,s=(n??"")+o;r&&(s=M({path:r,url:s}));let t=e?a(e):"";return t.startsWith("?")&&(t=t.substring(1)),t&&(s+=`?${t}`),s},x=(n,r)=>{let e={...n,...r};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=j(n.headers,r.headers),e},j=(...n)=>{let r=new Headers;for(let e of n){if(!e||typeof e!="object")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[i,o]of a)if(o===null)r.delete(i);else if(Array.isArray(o))for(let s of o)r.append(i,s);else o!==void 0&&r.set(i,typeof o=="object"?JSON.stringify(o):o);}return r},m=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let e=this.getInterceptorIndex(r);return !!this._fns[e]}eject(r){let e=this.getInterceptorIndex(r);this._fns[e]&&(this._fns[e]=null);}update(r,e){let a=this.getInterceptorIndex(r);return this._fns[a]?(this._fns[a]=e,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},v=()=>({error:new m,request:new m,response:new m}),V=k({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),F={"Content-Type":"application/json"},w=(n={})=>({...O,headers:F,parseAs:"auto",querySerializer:V,...n});var G=(n={})=>{let r=x(w(),n),e=()=>({...r}),a=s=>(r=x(r,s),e()),i=v(),o=async s=>{let t={...r,...s,fetch:s.fetch??r.fetch??globalThis.fetch,headers:j(r.headers,s.headers)};t.security&&await $({...t,security:t.security}),t.body&&t.bodySerializer&&(t.body=t.bodySerializer(t.body)),(t.body===void 0||t.body==="")&&t.headers.delete("Content-Type");let l=S(t),f={redirect:"follow",...t},u=new Request(l,f);for(let p of i.request._fns)p&&(u=await p(u,t));let d=t.fetch,c=await d(u);for(let p of i.response._fns)p&&(c=await p(c,u,t));let g={request:u,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return {data:{},...g};let p=(t.parseAs==="auto"?E(c.headers.get("Content-Type")):t.parseAs)??"json";if(p==="stream")return {data:c.body,...g};let R=await c[p]();return p==="json"&&(t.responseValidator&&await t.responseValidator(R),t.responseTransformer&&(R=await t.responseTransformer(R))),{data:R,...g}}let b=await c.text();try{b=JSON.parse(b);}catch{}let y=b;for(let p of i.error._fns)p&&(y=await p(b,c,u,t));if(y=y||{},t.throwOnError)throw y;return {error:y,...g}};return {buildUrl:S,connect:s=>o({...s,method:"CONNECT"}),delete:s=>o({...s,method:"DELETE"}),get:s=>o({...s,method:"GET"}),getConfig:e,head:s=>o({...s,method:"HEAD"}),interceptors:i,options:s=>o({...s,method:"OPTIONS"}),patch:s=>o({...s,method:"PATCH"}),post:s=>o({...s,method:"POST"}),put:s=>o({...s,method:"PUT"}),request:o,setConfig:a,trace:s=>o({...s,method:"TRACE"})}};exports.buildClientParams=W;exports.createClient=G;exports.createConfig=w;exports.formDataBodySerializer=T;exports.jsonBodySerializer=O;exports.urlSearchParamsBodySerializer=_;//# sourceMappingURL=index.cjs.map 1 + 'use strict';var A=async(t,r)=>{let e=typeof r=="function"?await r(t):r;if(e)return t.scheme==="bearer"?`Bearer ${e}`:t.scheme==="basic"?`Basic ${btoa(e)}`:e},z=(t,r,e)=>{typeof e=="string"||e instanceof Blob?t.append(r,e):t.append(r,JSON.stringify(e));},I=(t,r,e)=>{typeof e=="string"?t.append(r,e):t.append(r,JSON.stringify(e));},T={bodySerializer:t=>{let r=new FormData;return Object.entries(t).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>z(r,e,i)):z(r,e,a));}),r}},O={bodySerializer:t=>JSON.stringify(t,(r,e)=>typeof e=="bigint"?e.toString():e)},_={bodySerializer:t=>{let r=new URLSearchParams;return Object.entries(t).forEach(([e,a])=>{a!=null&&(Array.isArray(a)?a.forEach(i=>I(r,e,i)):I(r,e,a));}),r.toString()}},U={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},D=Object.entries(U),P=(t,r)=>{r||(r=new Map);for(let e of t)"in"in e?e.key&&r.set(e.key,{in:e.in,map:e.map}):e.args&&P(e.args,r);return r},H=t=>{for(let[r,e]of Object.entries(t))e&&typeof e=="object"&&!Object.keys(e).length&&delete t[r];},W=(t,r)=>{let e={body:{},headers:{},path:{},query:{}},a=P(r),i;for(let[o,s]of t.entries())if(r[o]&&(i=r[o]),!!i)if("in"in i)if(i.key){let n=a.get(i.key),l=n.map||i.key;e[n.in][l]=s;}else e.body=s;else for(let[n,l]of Object.entries(s??{})){let u=a.get(n);if(u){let p=u.map||n;e[u.in][p]=l;}else {let p=D.find(([d])=>n.startsWith(d));if(p){let[d,c]=p;e[c][n.slice(d.length)]=l;}else for(let[d,c]of Object.entries(i.allowExtra??{}))if(c){e[d][n]=l;break}}}return H(e),e},B=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},N=t=>{switch(t){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Q=t=>{switch(t){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},q=({allowReserved:t,explode:r,name:e,style:a,value:i})=>{if(!r){let n=(t?i:i.map(l=>encodeURIComponent(l))).join(N(a));switch(a){case "label":return `.${n}`;case "matrix":return `;${e}=${n}`;case "simple":return n;default:return `${e}=${n}`}}let o=B(a),s=i.map(n=>a==="label"||a==="simple"?t?n:encodeURIComponent(n):h({allowReserved:t,name:e,value:n})).join(o);return a==="label"||a==="matrix"?o+s:s},h=({allowReserved:t,name:r,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${t?e:encodeURIComponent(e)}`},S=({allowReserved:t,explode:r,name:e,style:a,value:i,valueOnly:o})=>{if(i instanceof Date)return o?i.toISOString():`${e}=${i.toISOString()}`;if(a!=="deepObject"&&!r){let l=[];Object.entries(i).forEach(([p,d])=>{l=[...l,p,t?d:encodeURIComponent(d)];});let u=l.join(",");switch(a){case "form":return `${e}=${u}`;case "label":return `.${u}`;case "matrix":return `;${e}=${u}`;default:return u}}let s=Q(a),n=Object.entries(i).map(([l,u])=>h({allowReserved:t,name:a==="deepObject"?`${e}[${l}]`:l,value:u})).join(s);return a==="label"||a==="matrix"?s+n:n};var J=/\{[^{}]+\}/g,M=({path:t,url:r})=>{let e=r,a=r.match(J);if(a)for(let i of a){let o=false,s=i.substring(1,i.length-1),n="simple";s.endsWith("*")&&(o=true,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),n="label"):s.startsWith(";")&&(s=s.substring(1),n="matrix");let l=t[s];if(l==null)continue;if(Array.isArray(l)){e=e.replace(i,q({explode:o,name:s,style:n,value:l}));continue}if(typeof l=="object"){e=e.replace(i,S({explode:o,name:s,style:n,value:l,valueOnly:true}));continue}if(n==="matrix"){e=e.replace(i,`;${h({name:s,value:l})}`);continue}let u=encodeURIComponent(n==="label"?`.${l}`:l);e=e.replace(i,u);}return e},k=({allowReserved:t,array:r,object:e}={})=>i=>{let o=[];if(i&&typeof i=="object")for(let s in i){let n=i[s];if(n!=null)if(Array.isArray(n)){let l=q({allowReserved:t,explode:true,name:s,style:"form",value:n,...r});l&&o.push(l);}else if(typeof n=="object"){let l=S({allowReserved:t,explode:true,name:s,style:"deepObject",value:n,...e});l&&o.push(l);}else {let l=h({allowReserved:t,name:s,value:n});l&&o.push(l);}}return o.join("&")},E=t=>{if(!t)return "stream";let r=t.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(e=>r.startsWith(e)))return "blob";if(r.startsWith("text/"))return "text"}},$=async({security:t,...r})=>{for(let e of t){let a=await A(e,r.auth);if(!a)continue;let i=e.name??"Authorization";switch(e.in){case "query":r.query||(r.query={}),r.query[i]=a;break;case "cookie":r.headers.append("Cookie",`${i}=${a}`);break;case "header":default:r.headers.set(i,a);break}return}},C=t=>L({baseUrl:t.baseUrl,path:t.path,query:t.query,querySerializer:typeof t.querySerializer=="function"?t.querySerializer:k(t.querySerializer),url:t.url}),L=({baseUrl:t,path:r,query:e,querySerializer:a,url:i})=>{let o=i.startsWith("/")?i:`/${i}`,s=(t??"")+o;r&&(s=M({path:r,url:s}));let n=e?a(e):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(s+=`?${n}`),s},x=(t,r)=>{let e={...t,...r};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=j(t.headers,r.headers),e},j=(...t)=>{let r=new Headers;for(let e of t){if(!e||typeof e!="object")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[i,o]of a)if(o===null)r.delete(i);else if(Array.isArray(o))for(let s of o)r.append(i,s);else o!==void 0&&r.set(i,typeof o=="object"?JSON.stringify(o):o);}return r},m=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let e=this.getInterceptorIndex(r);return !!this._fns[e]}eject(r){let e=this.getInterceptorIndex(r);this._fns[e]&&(this._fns[e]=null);}update(r,e){let a=this.getInterceptorIndex(r);return this._fns[a]?(this._fns[a]=e,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},v=()=>({error:new m,request:new m,response:new m}),V=k({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),F={"Content-Type":"application/json"},w=(t={})=>({...O,headers:F,parseAs:"auto",querySerializer:V,...t});var G=(t={})=>{let r=x(w(),t),e=()=>({...r}),a=s=>(r=x(r,s),e()),i=v(),o=async s=>{let n={...r,...s,fetch:s.fetch??r.fetch??globalThis.fetch,headers:j(r.headers,s.headers)};n.security&&await $({...n,security:n.security}),n.body&&n.bodySerializer&&(n.body=n.bodySerializer(n.body)),(n.body===void 0||n.body==="")&&n.headers.delete("Content-Type");let l=C(n),u={redirect:"follow",...n},p=new Request(l,u);for(let f of i.request._fns)f&&(p=await f(p,n));let d=n.fetch,c=await d(p);for(let f of i.response._fns)f&&(c=await f(c,p,n));let g={request:p,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return {data:{},...g};let f=(n.parseAs==="auto"?E(c.headers.get("Content-Type")):n.parseAs)??"json";if(f==="stream")return {data:c.body,...g};let R=await c[f]();return f==="json"&&(n.responseValidator&&await n.responseValidator(R),n.responseTransformer&&(R=await n.responseTransformer(R))),{data:R,...g}}let b=await c.text();try{b=JSON.parse(b);}catch{}let y=b;for(let f of i.error._fns)f&&(y=await f(b,c,p,n));if(y=y||{},n.throwOnError)throw y;return {error:y,...g}};return {buildUrl:C,connect:s=>o({...s,method:"CONNECT"}),delete:s=>o({...s,method:"DELETE"}),get:s=>o({...s,method:"GET"}),getConfig:e,head:s=>o({...s,method:"HEAD"}),interceptors:i,options:s=>o({...s,method:"OPTIONS"}),patch:s=>o({...s,method:"PATCH"}),post:s=>o({...s,method:"POST"}),put:s=>o({...s,method:"PUT"}),request:o,setConfig:a,trace:s=>o({...s,method:"TRACE"})}};exports.buildClientParams=W;exports.createClient=G;exports.createConfig=w;exports.formDataBodySerializer=T;exports.jsonBodySerializer=O;exports.urlSearchParamsBodySerializer=_;//# sourceMappingURL=index.cjs.map 2 2 //# sourceMappingURL=index.cjs.map
+1
packages/openapi-ts-tests/test/__snapshots__/3.1.x/clients/my-client/bundle/client/utils.ts
··· 67 67 name, 68 68 style, 69 69 value: value as Record<string, unknown>, 70 + valueOnly: true, 70 71 }), 71 72 ); 72 73 continue;
+1
packages/openapi-ts-tests/test/custom/client/utils.ts
··· 67 67 name, 68 68 style, 69 69 value: value as Record<string, unknown>, 70 + valueOnly: true, 70 71 }), 71 72 ); 72 73 continue;