@hey-api/openapi-ts 0.53.9 → 0.53.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -9
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +15 -9
package/README.md
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img width="150" height="150" src="https://heyapi.
|
|
3
|
-
<h1 align="center"><b>OpenAPI
|
|
4
|
-
<p align="center"
|
|
2
|
+
<img width="150" height="150" src="https://heyapi.dev/logo.png" alt="Logo">
|
|
3
|
+
<h1 align="center"><b>OpenAPI TypeScript</b></h1>
|
|
4
|
+
<p align="center">🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.</p>
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-
Generate TypeScript interfaces, REST clients, and JSON Schemas from OpenAPI specifications.
|
|
8
|
-
|
|
9
7
|
[Live demo](https://stackblitz.com/edit/hey-api-example?file=openapi-ts.config.ts,src%2Fclient%2Fschemas.gen.ts,src%2Fclient%2Fservices.gen.ts,src%2Fclient%2Ftypes.gen.ts)
|
|
10
8
|
|
|
11
9
|
## Features
|
|
@@ -18,7 +16,7 @@ Generate TypeScript interfaces, REST clients, and JSON Schemas from OpenAPI spec
|
|
|
18
16
|
|
|
19
17
|
## Documentation
|
|
20
18
|
|
|
21
|
-
Please visit our [website](https://heyapi.
|
|
19
|
+
Please visit our [website](https://heyapi.dev/) for documentation, guides, migrating, and more.
|
|
22
20
|
|
|
23
21
|
## Sponsoring
|
|
24
22
|
|
|
@@ -26,12 +24,12 @@ Love Hey API? Please consider becoming a [sponsor](https://github.com/sponsors/m
|
|
|
26
24
|
|
|
27
25
|
## GitHub Integration (coming soon)
|
|
28
26
|
|
|
29
|
-
Automatically update your code when the APIs it depends on change. [Find out more](https://heyapi.
|
|
27
|
+
Automatically update your code when the APIs it depends on change. [Find out more](https://heyapi.dev/openapi-ts/integrations.html).
|
|
30
28
|
|
|
31
29
|
## Migrating from OpenAPI Typescript Codegen?
|
|
32
30
|
|
|
33
|
-
Please read our [migration guide](https://heyapi.
|
|
31
|
+
Please read our [migration guide](https://heyapi.dev/openapi-ts/migrating.html#openapi-typescript-codegen).
|
|
34
32
|
|
|
35
33
|
## Contributing
|
|
36
34
|
|
|
37
|
-
Want to get involved? Please refer to the [contributing guide](https://heyapi.
|
|
35
|
+
Want to get involved? Please refer to the [contributing guide](https://heyapi.dev/contributing.html).
|
package/dist/index.cjs
CHANGED
|
@@ -1322,7 +1322,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
|
|
|
1322
1322
|
|
|
1323
1323
|
onCancel(() => xhr.abort());
|
|
1324
1324
|
});
|
|
1325
|
-
};`},useData:!0};var mp=()=>{f__default.default.registerHelper("camelCase",function(e){return j({input:e})}),f__default.default.registerHelper("equals",function(e,t,r){return e===t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("ifdef",function(...e){let t=e.pop();return e.every(r=>!r)?t.inverse(this):t.fn(this)}),f__default.default.registerHelper("notEquals",function(e,t,r){return e!==t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("transformServiceName",Le);},ri=()=>{mp();let e={client:f__default.default.template(fs),core:{apiError:f__default.default.template(bs),apiRequestOptions:f__default.default.template(Ps),apiResult:f__default.default.template(Cs),baseHttpRequest:f__default.default.template(Ss),cancelablePromise:f__default.default.template(ks),httpRequest:f__default.default.template(Gs),request:f__default.default.template(zs),settings:f__default.default.template(Xs)}};return f__default.default.registerPartial("functions/base64",f__default.default.template(js)),f__default.default.registerPartial("functions/catchErrorCodes",f__default.default.template(Hs)),f__default.default.registerPartial("functions/getFormData",f__default.default.template(Fs)),f__default.default.registerPartial("functions/getQueryString",f__default.default.template(Bs)),f__default.default.registerPartial("functions/getUrl",f__default.default.template(Ls)),f__default.default.registerPartial("functions/isBlob",f__default.default.template(_s)),f__default.default.registerPartial("functions/isFormData",f__default.default.template(Us)),f__default.default.registerPartial("functions/isString",f__default.default.template(Vs)),f__default.default.registerPartial("functions/isStringWithValue",f__default.default.template(Ks)),f__default.default.registerPartial("functions/isSuccess",f__default.default.template(Qs)),f__default.default.registerPartial("functions/resolve",f__default.default.template(Ws)),f__default.default.registerPartial("fetch/getHeaders",f__default.default.template(Ns)),f__default.default.registerPartial("fetch/getRequestBody",f__default.default.template(ws)),f__default.default.registerPartial("fetch/getResponseBody",f__default.default.template($s)),f__default.default.registerPartial("fetch/getResponseHeader",f__default.default.template(Is)),f__default.default.registerPartial("fetch/request",f__default.default.template(Ds)),f__default.default.registerPartial("fetch/sendRequest",f__default.default.template(Ms)),f__default.default.registerPartial("xhr/getHeaders",f__default.default.template(Js)),f__default.default.registerPartial("xhr/getRequestBody",f__default.default.template(Ys)),f__default.default.registerPartial("xhr/getResponseBody",f__default.default.template(Zs)),f__default.default.registerPartial("xhr/getResponseHeader",f__default.default.template(ei)),f__default.default.registerPartial("xhr/request",f__default.default.template(ti)),f__default.default.registerPartial("xhr/sendRequest",f__default.default.template(ni)),f__default.default.registerPartial("axios/getHeaders",f__default.default.template(Ts)),f__default.default.registerPartial("axios/getRequestBody",f__default.default.template(Rs)),f__default.default.registerPartial("axios/getResponseBody",f__default.default.template(As)),f__default.default.registerPartial("axios/getResponseHeader",f__default.default.template(vs)),f__default.default.registerPartial("axios/request",f__default.default.template(Es)),f__default.default.registerPartial("axios/sendRequest",f__default.default.template(qs)),f__default.default.registerPartial("angular/getHeaders",f__default.default.template(ds)),f__default.default.registerPartial("angular/getRequestBody",f__default.default.template(ys)),f__default.default.registerPartial("angular/getResponseBody",f__default.default.template(gs)),f__default.default.registerPartial("angular/getResponseHeader",f__default.default.template(hs)),f__default.default.registerPartial("angular/request",f__default.default.template(xs)),f__default.default.registerPartial("angular/sendRequest",f__default.default.template(Os)),e};var oi=e=>{let t=g(),r=t.services.filter?new RegExp(t.services.filter):void 0;return !r||r.test(e)},si=e=>{let t=g();return !R(t)||e.prop!=="api-version"},ii=e=>{let t=g();if(t.services.operationId&&e.id)return j({input:Ue(e.id)});let r=e.path;return R(t)&&(r=r.replace(/[^/]*?{api-version}.*?\//g,"")),r=r.replace(/{(.*?)}/g,"by-$1").replace(/[/:]/g,"-"),j({input:`${e.method}-${r}`})},ai=e=>{let t=g();return R(t)?un(e.prop):e.prop};var pi=e=>`${e}-end`,On=e=>`${e}-length`,ci=e=>`${e}-start`,N={clear:()=>{performance.clearMarks(),performance.clearMeasures();},end:e=>performance.mark(pi(e)),getEntriesByName:e=>performance.getEntriesByName(On(e)),measure:e=>performance.measure(On(e),ci(e),pi(e)),start:e=>performance.mark(ci(e))},Lt=class{totalMeasure;constructor({totalMark:t}){this.totalMeasure=N.measure(t);}report({marks:t}){let r=Math.ceil(this.totalMeasure.duration*100)/100,s=this.totalMeasure.name;console.warn(`${s.substring(0,s.length-On("").length)}: ${r.toFixed(2)}ms`),t.forEach(n=>{let o=N.measure(n),a=Math.ceil(o.duration*100)/100,i=Math.ceil(o.duration/this.totalMeasure.duration*100*100)/100;console.warn(`${n}: ${a.toFixed(2)}ms (${i.toFixed(2)}%)`);});}};function mi(e){return {...e,models:e.models.map(t=>lp(t)),services:up(e.operations).map(fp),types:{}}}var lp=e=>({...e,$refs:e.$refs.filter((t,r,s)=>H(t,r,s)),enum:e.enum.filter((t,r,s)=>s.findIndex(n=>n.value===t.value)===r),enums:e.enums.filter((t,r,s)=>s.findIndex(n=>n.name===t.name)===r),imports:e.imports.filter((t,r,s)=>H(t,r,s)&&t!==e.name).sort($e)}),up=e=>{let t=g(),r=new Map;return e.forEach(s=>{(s.tags?.length&&(t.services.asClass||t.name)?s.tags.filter(H):["Default"]).forEach(o=>{let a={...s,service:gp(o)},i=r.get(a.service)||yp(a);i.$refs=[...i.$refs,...a.$refs],i.imports=[...i.imports,...a.imports],i.operations=[...i.operations,a],r.set(a.service,i);});}),Array.from(r.values())},fp=e=>{let t={...e};return t.operations=dp(t),t.operations.forEach(r=>{t.imports.push(...r.imports);}),t.imports=t.imports.filter(H).sort($e),t},dp=e=>{let t=new Map;return e.operations.map(r=>{let s={...r};s.imports.push(...s.parameters.flatMap(i=>i.imports));let n=s.responses.filter(i=>i.responseTypes.includes("success"));s.imports.push(...n.flatMap(i=>i.imports));let o=s.name,a=t.get(o)||0;return a>0&&(s.name=`${o}${a}`),t.set(o,a+1),s})},yp=e=>({$refs:[],imports:[],name:e.service,operations:[]}),gp=e=>j({input:Ue(e),pascalCase:!0});var Op={biome:{args:e=>["format","--write",e],command:"biome",name:"Biome (Format)"},prettier:{args:e=>["--ignore-unknown",e,"--write","--ignore-path","./.prettierignore"],command:"prettier",name:"Prettier"}},bp={biome:{args:e=>["lint","--apply",e],command:"biome",name:"Biome (Lint)"},eslint:{args:e=>[e,"--fix"],command:"eslint",name:"ESLint"}},Pp=()=>{let e=g();if(e.output.format){let t=Op[e.output.format];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}if(e.output.lint){let t=bp[e.output.lint];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}},Cp=()=>{let{client:e}=g();switch(e.name){case"legacy/angular":return console.log("\u2728 Creating Angular client");case"@hey-api/client-axios":case"legacy/axios":return console.log("\u2728 Creating Axios client");case"@hey-api/client-fetch":case"legacy/fetch":return console.log("\u2728 Creating Fetch client");case"legacy/node":return console.log("\u2728 Creating Node.js client");case"legacy/xhr":return console.log("\u2728 Creating XHR client")}},Tp=e=>{let t={bundle:!1,name:""};return typeof e.client=="string"?t.name=e.client:e.client&&(t={...t,...e.client}),t},Rp=e=>{let t={format:!1,lint:!1,path:""};return typeof e.output=="string"?t.path=e.output:t={...t,...e.output},t},Ap=e=>(e.plugins??[]).map(r=>typeof r=="string"?xn[r]:{...xn[r.name],...r}),vp=e=>{let t={export:!0,type:"json"};return typeof e.schemas=="boolean"?t.export=e.schemas:t={...t,...e.schemas},t},Ep=e=>{let t={asClass:!1,export:!0,name:"{{name}}Service",operationId:!0,response:"body"};return typeof e.services=="boolean"?t.export=e.services:typeof e.services=="string"?t.include=e.services:t={...t,...e.services},t},qp=(e,t)=>{let r={dates:!1,enums:!1,export:!0,name:"preserve",tree:!t.export};return typeof e.types=="boolean"?r.export=e.types:typeof e.types=="string"?r.include=e.types:r={...r,...e.types},r},Sp=async e=>{let t;if(e.configFile){let n=e.configFile.split(".");t=n.slice(0,n.length-1).join(".");}let{config:r}=await c12.loadConfig({configFile:t,name:"openapi-ts"});return (Array.isArray(e)?e:Array.isArray(r)?r.map(n=>({...n,...e})):[{...r??{},...e}]).map(n=>{let{base:o,configFile:a="",debug:i=!1,dryRun:p=!1,exportCore:c=!0,experimental_parser:m=!1,input:u,name:d,request:h,useOptions:O=!0}=n;i&&console.warn("userConfig:",n);let x=Rp(n);if(!u)throw new Error("\u{1F6AB} missing input - which OpenAPI specification should we use to generate your client?");if(!x.path)throw new Error("\u{1F6AB} missing output - where should we generate your client?");let E=Tp(n);if(E.name&&!ls.includes(E.name))throw new Error("\u{1F6AB} invalid client - select a valid client value");O||console.warn("\u2757\uFE0F Deprecation warning: useOptions set to false. This setting will be removed in future versions. Please migrate useOptions to true https://heyapi.vercel.app/openapi-ts/migrating.html#v0-27-38");let C=Ap(n),ue=vp(n),ke=Ep(n),F=qp(n,ke);x.path=K__default.default.resolve(process.cwd(),x.path);let J=ur({base:o,client:E,configFile:a,debug:i,dryRun:p,experimental_parser:m,exportCore:R(E)?c:!1,input:u,name:d,output:x,plugins:C,request:h,schemas:ue,services:ke,types:F,useOptions:O});return i&&console.warn("config:",J),J})};async function kp(e){N.start("createClient"),N.start("config");let t=await Sp(e);N.end("config"),N.start("handlebars");let r=ri();N.end("handlebars");let s=a=>async()=>{N.start("openapi");let i=typeof a.input=="string"?await us(a.input):a.input;if(N.end("openapi"),a.experimental_parser)N.start("experimental_parser"),Mo({spec:i}),N.end("experimental_parser");else {N.start("parser");let p=Do({config:{filterFn:{operation:oi,operationParameter:si},nameFn:{operation:ii,operationParameter:ai}},openApi:i}),c=mi(p);return N.end("parser"),Cp(),N.start("generator"),await es(i,c,r),N.end("generator"),N.start("postprocess"),a.dryRun||(Pp(),console.log("\u2728 Done! Your client is located in:",a.output.path)),N.end("postprocess"),c}},n=[],o=t.map(a=>s(a));for(let a of o){let i=await a();i&&n.push(i);}return N.end("createClient"),e.debug&&new Lt({totalMark:"createClient"}).report({marks:["config","openapi","handlebars","parser","generator","postprocess"]}),n}var Np=e=>e,nx={createClient:kp,defineConfig:Np};
|
|
1325
|
+
};`},useData:!0};var mp=()=>{f__default.default.registerHelper("camelCase",function(e){return j({input:e})}),f__default.default.registerHelper("equals",function(e,t,r){return e===t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("ifdef",function(...e){let t=e.pop();return e.every(r=>!r)?t.inverse(this):t.fn(this)}),f__default.default.registerHelper("notEquals",function(e,t,r){return e!==t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("transformServiceName",Le);},ri=()=>{mp();let e={client:f__default.default.template(fs),core:{apiError:f__default.default.template(bs),apiRequestOptions:f__default.default.template(Ps),apiResult:f__default.default.template(Cs),baseHttpRequest:f__default.default.template(Ss),cancelablePromise:f__default.default.template(ks),httpRequest:f__default.default.template(Gs),request:f__default.default.template(zs),settings:f__default.default.template(Xs)}};return f__default.default.registerPartial("functions/base64",f__default.default.template(js)),f__default.default.registerPartial("functions/catchErrorCodes",f__default.default.template(Hs)),f__default.default.registerPartial("functions/getFormData",f__default.default.template(Fs)),f__default.default.registerPartial("functions/getQueryString",f__default.default.template(Bs)),f__default.default.registerPartial("functions/getUrl",f__default.default.template(Ls)),f__default.default.registerPartial("functions/isBlob",f__default.default.template(_s)),f__default.default.registerPartial("functions/isFormData",f__default.default.template(Us)),f__default.default.registerPartial("functions/isString",f__default.default.template(Vs)),f__default.default.registerPartial("functions/isStringWithValue",f__default.default.template(Ks)),f__default.default.registerPartial("functions/isSuccess",f__default.default.template(Qs)),f__default.default.registerPartial("functions/resolve",f__default.default.template(Ws)),f__default.default.registerPartial("fetch/getHeaders",f__default.default.template(Ns)),f__default.default.registerPartial("fetch/getRequestBody",f__default.default.template(ws)),f__default.default.registerPartial("fetch/getResponseBody",f__default.default.template($s)),f__default.default.registerPartial("fetch/getResponseHeader",f__default.default.template(Is)),f__default.default.registerPartial("fetch/request",f__default.default.template(Ds)),f__default.default.registerPartial("fetch/sendRequest",f__default.default.template(Ms)),f__default.default.registerPartial("xhr/getHeaders",f__default.default.template(Js)),f__default.default.registerPartial("xhr/getRequestBody",f__default.default.template(Ys)),f__default.default.registerPartial("xhr/getResponseBody",f__default.default.template(Zs)),f__default.default.registerPartial("xhr/getResponseHeader",f__default.default.template(ei)),f__default.default.registerPartial("xhr/request",f__default.default.template(ti)),f__default.default.registerPartial("xhr/sendRequest",f__default.default.template(ni)),f__default.default.registerPartial("axios/getHeaders",f__default.default.template(Ts)),f__default.default.registerPartial("axios/getRequestBody",f__default.default.template(Rs)),f__default.default.registerPartial("axios/getResponseBody",f__default.default.template(As)),f__default.default.registerPartial("axios/getResponseHeader",f__default.default.template(vs)),f__default.default.registerPartial("axios/request",f__default.default.template(Es)),f__default.default.registerPartial("axios/sendRequest",f__default.default.template(qs)),f__default.default.registerPartial("angular/getHeaders",f__default.default.template(ds)),f__default.default.registerPartial("angular/getRequestBody",f__default.default.template(ys)),f__default.default.registerPartial("angular/getResponseBody",f__default.default.template(gs)),f__default.default.registerPartial("angular/getResponseHeader",f__default.default.template(hs)),f__default.default.registerPartial("angular/request",f__default.default.template(xs)),f__default.default.registerPartial("angular/sendRequest",f__default.default.template(Os)),e};var oi=e=>{let t=g(),r=t.services.filter?new RegExp(t.services.filter):void 0;return !r||r.test(e)},si=e=>{let t=g();return !R(t)||e.prop!=="api-version"},ii=e=>{let t=g();if(t.services.operationId&&e.id)return j({input:Ue(e.id)});let r=e.path;return R(t)&&(r=r.replace(/[^/]*?{api-version}.*?\//g,"")),r=r.replace(/{(.*?)}/g,"by-$1").replace(/[/:]/g,"-"),j({input:`${e.method}-${r}`})},ai=e=>{let t=g();return R(t)?un(e.prop):e.prop};var pi=e=>`${e}-end`,On=e=>`${e}-length`,ci=e=>`${e}-start`,N={clear:()=>{performance.clearMarks(),performance.clearMeasures();},end:e=>performance.mark(pi(e)),getEntriesByName:e=>performance.getEntriesByName(On(e)),measure:e=>performance.measure(On(e),ci(e),pi(e)),start:e=>performance.mark(ci(e))},Lt=class{totalMeasure;constructor({totalMark:t}){this.totalMeasure=N.measure(t);}report({marks:t}){let r=Math.ceil(this.totalMeasure.duration*100)/100,s=this.totalMeasure.name;console.warn(`${s.substring(0,s.length-On("").length)}: ${r.toFixed(2)}ms`),t.forEach(n=>{let o=N.measure(n),a=Math.ceil(o.duration*100)/100,i=Math.ceil(o.duration/this.totalMeasure.duration*100*100)/100;console.warn(`${n}: ${a.toFixed(2)}ms (${i.toFixed(2)}%)`);});}};function mi(e){return {...e,models:e.models.map(t=>lp(t)),services:up(e.operations).map(fp),types:{}}}var lp=e=>({...e,$refs:e.$refs.filter((t,r,s)=>H(t,r,s)),enum:e.enum.filter((t,r,s)=>s.findIndex(n=>n.value===t.value)===r),enums:e.enums.filter((t,r,s)=>s.findIndex(n=>n.name===t.name)===r),imports:e.imports.filter((t,r,s)=>H(t,r,s)&&t!==e.name).sort($e)}),up=e=>{let t=g(),r=new Map;return e.forEach(s=>{(s.tags?.length&&(t.services.asClass||t.name)?s.tags.filter(H):["Default"]).forEach(o=>{let a={...s,service:gp(o)},i=r.get(a.service)||yp(a);i.$refs=[...i.$refs,...a.$refs],i.imports=[...i.imports,...a.imports],i.operations=[...i.operations,a],r.set(a.service,i);});}),Array.from(r.values())},fp=e=>{let t={...e};return t.operations=dp(t),t.operations.forEach(r=>{t.imports.push(...r.imports);}),t.imports=t.imports.filter(H).sort($e),t},dp=e=>{let t=new Map;return e.operations.map(r=>{let s={...r};s.imports.push(...s.parameters.flatMap(i=>i.imports));let n=s.responses.filter(i=>i.responseTypes.includes("success"));s.imports.push(...n.flatMap(i=>i.imports));let o=s.name,a=t.get(o)||0;return a>0&&(s.name=`${o}${a}`),t.set(o,a+1),s})},yp=e=>({$refs:[],imports:[],name:e.service,operations:[]}),gp=e=>j({input:Ue(e),pascalCase:!0});var Op={biome:{args:e=>["format","--write",e],command:"biome",name:"Biome (Format)"},prettier:{args:e=>["--ignore-unknown",e,"--write","--ignore-path","./.prettierignore"],command:"prettier",name:"Prettier"}},bp={biome:{args:e=>["lint","--apply",e],command:"biome",name:"Biome (Lint)"},eslint:{args:e=>[e,"--fix"],command:"eslint",name:"ESLint"}},Pp=()=>{let e=g();if(e.output.format){let t=Op[e.output.format];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}if(e.output.lint){let t=bp[e.output.lint];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}},Cp=()=>{let{client:e}=g();switch(e.name){case"legacy/angular":return console.log("\u2728 Creating Angular client");case"@hey-api/client-axios":case"legacy/axios":return console.log("\u2728 Creating Axios client");case"@hey-api/client-fetch":case"legacy/fetch":return console.log("\u2728 Creating Fetch client");case"legacy/node":return console.log("\u2728 Creating Node.js client");case"legacy/xhr":return console.log("\u2728 Creating XHR client")}},Tp=e=>{let t={bundle:!1,name:""};return typeof e.client=="string"?t.name=e.client:e.client&&(t={...t,...e.client}),t},Rp=e=>{let t={format:!1,lint:!1,path:""};return typeof e.output=="string"?t.path=e.output:t={...t,...e.output},t},Ap=e=>(e.plugins??[]).map(r=>typeof r=="string"?xn[r]:{...xn[r.name],...r}),vp=e=>{let t={export:!0,type:"json"};return typeof e.schemas=="boolean"?t.export=e.schemas:t={...t,...e.schemas},t},Ep=e=>{let t={asClass:!1,export:!0,name:"{{name}}Service",operationId:!0,response:"body"};return typeof e.services=="boolean"?t.export=e.services:typeof e.services=="string"?t.include=e.services:t={...t,...e.services},t},qp=(e,t)=>{let r={dates:!1,enums:!1,export:!0,name:"preserve",tree:!t.export};return typeof e.types=="boolean"?r.export=e.types:typeof e.types=="string"?r.include=e.types:r={...r,...e.types},r},Sp=async e=>{let t;if(e.configFile){let n=e.configFile.split(".");t=n.slice(0,n.length-1).join(".");}let{config:r}=await c12.loadConfig({configFile:t,name:"openapi-ts"});return (Array.isArray(e)?e:Array.isArray(r)?r.map(n=>({...n,...e})):[{...r??{},...e}]).map(n=>{let{base:o,configFile:a="",debug:i=!1,dryRun:p=!1,exportCore:c=!0,experimental_parser:m=!1,input:u,name:d,request:h,useOptions:O=!0}=n;i&&console.warn("userConfig:",n);let x=Rp(n);if(!u)throw new Error("\u{1F6AB} missing input - which OpenAPI specification should we use to generate your client?");if(!x.path)throw new Error("\u{1F6AB} missing output - where should we generate your client?");let E=Tp(n);if(E.name&&!ls.includes(E.name))throw new Error("\u{1F6AB} invalid client - select a valid client value");O||console.warn("\u2757\uFE0F Deprecation warning: useOptions set to false. This setting will be removed in future versions. Please migrate useOptions to true https://heyapi.dev/openapi-ts/migrating.html#v0-27-38");let C=Ap(n),ue=vp(n),ke=Ep(n),F=qp(n,ke);x.path=K__default.default.resolve(process.cwd(),x.path);let J=ur({base:o,client:E,configFile:a,debug:i,dryRun:p,experimental_parser:m,exportCore:R(E)?c:!1,input:u,name:d,output:x,plugins:C,request:h,schemas:ue,services:ke,types:F,useOptions:O});return i&&console.warn("config:",J),J})};async function kp(e){N.start("createClient"),N.start("config");let t=await Sp(e);N.end("config"),N.start("handlebars");let r=ri();N.end("handlebars");let s=a=>async()=>{N.start("openapi");let i=typeof a.input=="string"?await us(a.input):a.input;if(N.end("openapi"),a.experimental_parser)N.start("experimental_parser"),Mo({spec:i}),N.end("experimental_parser");else {N.start("parser");let p=Do({config:{filterFn:{operation:oi,operationParameter:si},nameFn:{operation:ii,operationParameter:ai}},openApi:i}),c=mi(p);return N.end("parser"),Cp(),N.start("generator"),await es(i,c,r),N.end("generator"),N.start("postprocess"),a.dryRun||(Pp(),console.log("\u2728 Done! Your client is located in:",a.output.path)),N.end("postprocess"),c}},n=[],o=t.map(a=>s(a));for(let a of o){let i=await a();i&&n.push(i);}return N.end("createClient"),e.debug&&new Lt({totalMark:"createClient"}).report({marks:["config","openapi","handlebars","parser","generator","postprocess"]}),n}var Np=e=>e,nx={createClient:kp,defineConfig:Np};
|
|
1326
1326
|
|
|
1327
1327
|
exports.createClient = kp;
|
|
1328
1328
|
exports.default = nx;
|