@acrool/rtk-query-codegen-openapi 1.3.0-alpha.0 → 1.3.0
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/lib/bin/cli.mjs +14 -14
- package/lib/bin/cli.mjs.map +1 -1
- package/lib/index.js +8 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +8 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/generators/rtk-query-generator.ts +5 -1
- package/src/generators/tag-types-generator.ts +13 -2
package/lib/bin/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var M=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Se=Object.prototype.hasOwnProperty;var Q=(r,e)=>()=>(r&&(e=r(r=0)),e);var Re=(r,e)=>{for(var t in e)M(r,t,{get:e[t],enumerable:!0})},Ee=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of $e(e))!Se.call(r,o)&&o!==t&&M(r,o,{get:()=>e[o],enumerable:!(n=Ae(e,o))||n.enumerable});return r};var Ne=r=>Ee(M({},"__esModule",{value:!0}),r);import{fileURLToPath as we}from"node:url";var Fe,g,c=Q(()=>{"use strict";Fe=()=>we(import.meta.url),g=Fe()});var ce={};Re(ce,{argumentMatches:()=>Le,defaultIsDataResponse:()=>Be,getOperationName:()=>F,getOverrides:()=>V,getTags:()=>ze,operationMatches:()=>pe});import{getOperationName as _e}from"oazapfts/generate";function Be(r,e){if(e&&r==="default")return!0;let t=Number(r);return!Number.isNaN(t)&&t>=200&&t<300}function F({verb:r,path:e}){return _e(r,e,void 0)}function ze({verb:r,pathItem:e}){return r?e[r]?.tags||[]:[]}function ae(r){let e=Array.isArray(r)?r:[r];return function(n){return r?e.some(o=>typeof o=="string"?o===n:o?.test(n)):!0}}function pe(r){let e=typeof r=="function"?r:ae(r);return function(n){if(!r)return!0;let o=F(n);return e(o,n)}}function Le(r){let e=typeof r=="function"?r:ae(r);return function(n){if(!r||n.in==="path")return!0;let o=n.name;return e(o,n)}}function V(r,e){return e?.find(t=>pe(t.pattern)(r))}var U=Q(()=>{"use strict";c()});c();import I from"commander";import{createRequire as ot}from"node:module";c();import qe from"commander";import{createRequire as De}from"node:module";import{resolve as _}from"node:path";import{existsSync as K,rmSync as Ge,readdirSync as je,statSync as Ie,mkdirSync as Me}from"node:fs";import B from"node:path";var T=De(g);function Ke(r){let e=new Map;if(!K(r))return e;function t(n){try{let o=je(n);for(let s of o){let a=B.join(n,s);if(Ie(a).isDirectory())t(a);else if(s==="enhanceEndpoints.ts"){let u=T("node:fs").readFileSync(a);e.set(a,u)}}}catch{}}return t(r),e}function ke(r){for(let[e,t]of r)try{let n=B.dirname(e);K(n)||Me(n,{recursive:!0}),T("node:fs").writeFileSync(e,t)}catch(n){console.warn(`Failed to restore ${e}:`,n)}}function z(r){let e=["/","/usr","/etc","/var","/home","/Users",".",".."],t=_(r);if(e.some(n=>t===_(n))&&(console.error(`Dangerous path detected: ${t}. Refusing to delete.`),process.exit(1)),K(r)){console.log(`Cleaning output directory: ${r}`);let n=Ke(r);Ge(r,{recursive:!0,force:!0}),n.size>0&&(ke(n),console.log(`Protected ${n.size} enhanceEndpoints.ts file(s) from deletion`)),console.log(`Directory cleaned: ${r}`)}}function L(){try{if(T.resolve("esbuild")&&T.resolve("esbuild-runner"))return T("esbuild-runner/register"),!0}catch{}try{if(T.resolve("typescript")&&T.resolve("ts-node"))return T("ts-node").register({transpileOnly:!0,compilerOptions:{target:"es6",module:"commonjs"}}),!0}catch{}return!1}function H(r){(!r||!/\.([mc]?(jsx?|tsx?)|jsonc?)?$/.test(r))&&(console.error("Please provide a valid configuration file."),qe.help())}function Z(r,e){/\.[mc]?tsx?$/.test(r)&&!e&&(console.error("Encountered a TypeScript config file, but neither esbuild-runner nor ts-node are installed."),process.exit(1))}import{dirname as it,resolve as st}from"node:path";c();c();import $ from"node:path";import be from"typescript";c();c();function R(r){return r.replace(r[0],r[0].toUpperCase())}c();import k from"node:fs";import Ve from"node:path";c();function Y(r){try{new URL(r)}catch{return!1}return!0}async function J(r,e){if(!Y(r))throw new Error(`remoteFile must be a valid URL: ${r}`);try{let t=Ve.dirname(e);k.existsSync(t)||await k.promises.mkdir(t,{recursive:!0});let n=await fetch(r);if(!n.ok)throw new Error(`Failed to download schema from ${r}: ${n.statusText}`);let o=await n.text();return await k.promises.writeFile(e,o,"utf-8"),console.log(`Schema downloaded from ${r} to ${e}`),e}catch(t){throw console.error(`Error downloading schema from ${r}:`,t),t}}c();c();var X=["get","put","post","delete","options","head","patch","trace"];function ee(r){return Object.entries(r.paths).flatMap(([e,t])=>t?Object.entries(t).filter(n=>X.includes(n[0])).map(([n,o])=>({path:e,verb:n,pathItem:t,operation:o})):[])}c();import Ue from"@apidevtools/swagger-parser";import We from"swagger2openapi";async function te(r,e){let t=await Ue.bundle(r,{resolve:{http:e}});return"openapi"in t&&t.openapi.startsWith("3")?t:(await We.convertObj(t,{})).openapi}c();function re(r,e,t,n){return n?n(r,e):t?.type?t.type==="query":r==="get"}var E=class{docCache={};async getDocument(e,t){if(this.docCache[e])return this.docCache[e];let n=await te(e,t);return this.docCache[e]=n,n}async downloadSchema(e,t){return J(e,t)}getPaths(e){return Object.keys(e.paths||{})}clearCache(){this.docCache={}}};c();import ne from"lodash.camelcase";var N=class{groupPaths(e,t){let{groupKeyMatch:n,outputDir:o}=t,s=e.reduce((i,u)=>{let m=n(u),l=m?ne(m):"_common";return i[l]||(i[l]=[]),i[l].push(u),i},{}),a={};for(let[i,u]of Object.entries(s))a[i]={groupKey:i,paths:u,outputPath:`${o}/${i}/query.service.ts`};return a}createGroupFilter(e,t){return(n,o)=>{let s=o.path,a=ne(t.groupKeyMatch(s)||"");return a!==e&&(a||"_common")!==e?!1:t.filterEndpoint?t.filterEndpoint(n,s,e):!0}}};c();import se from"node:fs";import v from"node:path";c();import Qe from"node:path";import oe from"node:fs";async function ie(r){let e=Qe.dirname(r);oe.existsSync(e)||await oe.promises.mkdir(e,{recursive:!0})}var w=class{async writeFile(e,t){try{let n=v.resolve(process.cwd(),e);return v.basename(n)==="enhanceEndpoints.ts"&&se.existsSync(n)?{path:n,success:!0}:(await ie(n),se.writeFileSync(n,t),{path:n,success:!0})}catch(n){return{path:e,success:!1,error:n}}}async writeFiles(e){let t=[];for(let[n,o]of Object.entries(e)){let s=await this.writeFile(n,o);t.push(s)}return t}async writeGroupFiles(e,t){let n={};return t.types&&(n[v.join(e,"types.ts")]=t.types),t.queryService&&(n[v.join(e,"query.generated.ts")]=t.queryService),t.enhanceEndpoints&&(n[v.join(e,"enhanceEndpoints.ts")]=t.enhanceEndpoints),t.index&&(n[v.join(e,"index.ts")]=t.index),this.writeFiles(n)}async writeSharedFiles(e,t){let n={};return t.commonTypes&&(n[v.join(e,"common-types.ts")]=t.commonTypes),t.doNotModify&&(n[v.join(e,"DO_NOT_MODIFY.md")]=t.doNotModify),t.utils&&(n[v.join(e,"utils.ts")]=t.utils),this.writeFiles(n)}async writeSchemaFile(e,t){let n={};return n[v.join(e,"schema.ts")]=t,this.writeFiles(n)}};c();import He from"oazapfts/generate";var q=class{constructor(e,t){this.v3Doc=e;this.apiGen=new He(e,{unionUndefined:t.unionUndefined,mergeReadWriteOnly:t.mergeReadWriteOnly})}apiGen;initialize(){this.apiGen.spec.components?.schemas&&(Object.keys(this.apiGen.spec.components.schemas).forEach(e=>{let t=this.apiGen.spec.components.schemas[e];t&&typeof t=="object"&&"title"in t&&delete t.title}),this.apiGen.preprocessComponents(this.apiGen.spec.components.schemas),Object.keys(this.apiGen.spec.components.schemas).forEach(e=>{try{this.apiGen.getRefAlias({$ref:`#/components/schemas/${e}`})}catch{}}))}getOperationDefinitions(e){let{operationMatches:t}=(U(),Ne(ce));return ee(this.v3Doc).filter(t(e))}getApiGenerator(){return this.apiGen}getDocument(){return this.v3Doc}getSchemaTypeNames(){return new Set}};c();function ue(){return`/* eslint-disable */
|
|
3
3
|
// [Warning] Generated automatically - do not edit manually
|
|
4
4
|
|
|
5
5
|
export interface RequestOptions {
|
|
@@ -20,12 +20,12 @@ export type IRestFulEndpointsQueryReturn<TVariables> = TVariables extends void ?
|
|
|
20
20
|
variables: TVariables;
|
|
21
21
|
fetchOptions?: IRequestConfig;
|
|
22
22
|
};
|
|
23
|
-
`}c();import h from"typescript";function Ze(r){return r.charAt(0).toUpperCase()+r.slice(1)}function Ye(r,e,t){return h.transform(r,[n=>o=>h.visitNode(o,function s(a){return h.isIdentifier(a)&&a.text===e?h.factory.createIdentifier(t):h.visitEachChild(a,s,n)})]).transformed[0]}function
|
|
23
|
+
`}c();import h from"typescript";function Ze(r){return r.charAt(0).toUpperCase()+r.slice(1)}function Ye(r,e,t){return h.transform(r,[n=>o=>h.visitNode(o,function s(a){return h.isIdentifier(a)&&a.text===e?h.factory.createIdentifier(t):h.visitEachChild(a,s,n)})]).transformed[0]}function me(r){let e=h.createPrinter({newLine:h.NewLineKind.LineFeed}),t=h.createSourceFile("component-schema.ts","",h.ScriptTarget.Latest,!1,h.ScriptKind.TS),n=[],o={};return Object.entries(r).forEach(([s,a])=>{let i=Ze(s);o[s]=i;let u=Ye(a,s,i),m=e.printNode(h.EmitHint.Unspecified,u,t);n.push(m)}),`/* eslint-disable */
|
|
24
24
|
// [Warning] Generated automatically - do not edit manually
|
|
25
25
|
|
|
26
26
|
${n.join(`
|
|
27
27
|
`)}
|
|
28
|
-
`}c();function
|
|
28
|
+
`}c();function le(){return`# \u8ACB\u52FF\u4FEE\u6539\u6B64\u8CC7\u6599\u593E
|
|
29
29
|
|
|
30
30
|
\u26A0\uFE0F **\u91CD\u8981\u63D0\u9192\uFF1A\u8ACB\u52FF\u4FEE\u6539\u6B64\u8CC7\u6599\u593E\u4E2D\u7684\u4EFB\u4F55\u6A94\u6848**
|
|
31
31
|
|
|
@@ -44,7 +44,7 @@ ${n.join(`
|
|
|
44
44
|
\u9019\u4E9B\u6A94\u6848\u662F\u7531 @acrool/rtk-query-codegen-openapi \u7522\u751F\u5668\u6240\u5EFA\u7ACB\u3002
|
|
45
45
|
|
|
46
46
|
\u5982\u6709\u7591\u554F\uFF0C\u8ACB\u53C3\u8003\u5C08\u6848\u6587\u4EF6\u6216\u806F\u7E6B\u958B\u767C\u5718\u968A\u3002
|
|
47
|
-
`}c();import
|
|
47
|
+
`}c();import he from"typescript";c();U();import{supportDeepObjects as Je}from"oazapfts/generate";var D=class{constructor(e){this.options=e}extractEndpointInfos(e){return e.map(t=>this.extractSingleEndpointInfo(t))}extractSingleEndpointInfo(e){let{verb:t,path:n,operation:o}=e,{operationNameSuffix:s="",argSuffix:a="Req",responseSuffix:i="Res",queryMatch:u,endpointOverrides:m}=this.options,l=F({verb:t,path:n}),p=s?R(l+s):l,f=R(l+s+a),b=R(l+s+i),d=re(t,n,V(e,m),u),A=`${l.replace(/([A-Z])/g,"_$1").toUpperCase()}`,P=o.summary||`${t.toUpperCase()} ${n}`,{queryParams:O,pathParams:C,isVoidArg:W,hasRequestBody:S}=this.extractParameters(e),Pe=this.extractContentType(o),Ce=Array.isArray(o.tags)?o.tags:[];return{operationName:p,argTypeName:f,responseTypeName:b,isQuery:d,verb:t.toUpperCase(),path:n,queryKeyName:A,queryParams:O,pathParams:C,isVoidArg:W,summary:P,contentType:Pe,hasRequestBody:S,tags:Ce}}extractParameters(e){let{operation:t,pathItem:n}=e,o=this.resolveArray(t.parameters),s=this.resolveArray(n.parameters).filter(p=>!o.some(f=>f.name===p.name&&f.in===p.in)),a=Je([...s,...o]).filter(p=>p.in!=="header"),i=a.filter(p=>p.in==="query"),u=a.filter(p=>p.in==="path"),m=!!t.requestBody,l=i.length===0&&u.length===0&&!t.requestBody;return{queryParams:i,pathParams:u,isVoidArg:l,hasRequestBody:m}}resolveArray(e){return e?Array.isArray(e)?e:[e]:[]}extractContentType(e){if(!e.requestBody)return"application/json";let t=e.requestBody.content;if(!t||typeof t!="object")return"application/json";let n=Object.keys(t);return n.length===0?"application/json":n[0]}};c();var Xe=r=>r.charAt(0).toUpperCase()+r.slice(1);function ye(r,e,t,n){let o={};t&&Object.keys(t).forEach(m=>{if(o[m]=m,m.endsWith("Vo")){let l=m.slice(0,-2)+"VO";o[l]=m}if(m.endsWith("Dto")){let l=m.slice(0,-3)+"DTO";o[l]=m}});let s=`/* eslint-disable */
|
|
48
48
|
// [Warning] Generated automatically - do not edit manually
|
|
49
49
|
|
|
50
50
|
`;t&&Object.keys(t).length>0&&(s+=`import * as Schema from "../schema";
|
|
@@ -52,16 +52,16 @@ ${n.join(`
|
|
|
52
52
|
`;let i=[],u=[];return r.forEach(m=>{let l=m.argTypeName,p=m.responseTypeName;if(l){let f=et(m,n,o);f.trim()===""?u.push(`export type ${l} = void;`,""):u.push(`export type ${l} = {`,f,"};","")}if(p){let f=tt(m,n,o);f.content.trim()===""?u.push(`export type ${p} = void;`,""):f.isDirectType?u.push(`export type ${p} = ${f.content};`,""):u.push(`export type ${p} = {`,f.content,"};","")}}),u.length>0&&i.push(u.join(`
|
|
53
53
|
`)),i.length===0&&i.push("// \u6B64\u6A94\u6848\u7528\u65BC\u5B9A\u7FA9 API \u76F8\u95DC\u7684\u985E\u578B","// \u985E\u578B\u5B9A\u7FA9\u6703\u6839\u64DA OpenAPI Schema \u81EA\u52D5\u751F\u6210",""),s+i.join(`
|
|
54
54
|
|
|
55
|
-
`)}function et(r,e,t={}){let n=[];r.queryParams&&r.queryParams.length>0&&r.queryParams.forEach(s=>{let a=s.required?"":"?",i=
|
|
55
|
+
`)}function et(r,e,t={}){let n=[];r.queryParams&&r.queryParams.length>0&&r.queryParams.forEach(s=>{let a=s.required?"":"?",i=ge(s,t);n.push(` ${s.name}${a}: ${i};`)}),r.pathParams&&r.pathParams.length>0&&r.pathParams.forEach(s=>{let a=s.required?"":"?",i=ge(s,t);n.push(` ${s.name}${a}: ${i};`)});let o=e?.find(s=>s.operation?.operationId===r.operationName||s.operation?.operationId===r.operationName.toLowerCase()||s.verb===r.verb.toLowerCase()&&s.path===r.path);if(o?.operation?.requestBody){let a=o.operation.requestBody.content,i=a["application/json"]||a["*/*"],u=a["multipart/form-data"]||a["application/x-www-form-urlencoded"];if(i?.schema){let m=x(i.schema,t,1);n.push(` body: ${m};`)}else if(u?.schema){let m=x(u.schema,t,1);n.push(` body: ${m};`)}else{let m=Object.values(a)[0];if(m?.schema){let l=x(m.schema,t,1);n.push(` body: ${l};`)}else n.push(" body?: any; // Request body from OpenAPI")}}return n.length===0?"":n.join(`
|
|
56
56
|
`)}function tt(r,e,t={}){let n=e?.find(o=>o.operation?.operationId===r.operationName||o.operation?.operationId===r.operationName.toLowerCase()||o.verb===r.verb.toLowerCase()&&o.path===r.path);if(n?.operation?.responses){let o=n.operation.responses[200]||n.operation.responses[201];if(o?.content){let s=o.content["application/json"]||o.content["*/*"]||Object.values(o.content)[0];if(s?.schema){let a=s.schema;if(a.$ref||a.type!=="object"||!a.properties){let u=x(a,t,0);if(u&&u!=="any")return{content:u,isDirectType:!0}}let i=rt(a,t);if(i.length>0)return{content:i.join(`
|
|
57
57
|
`),isDirectType:!1}}}}return{content:"",isDirectType:!1}}function rt(r,e={}){let t=[];if(r.type==="object"&&r.properties){let n=r.required||[];Object.entries(r.properties).forEach(([o,s])=>{let i=n.includes(o)?"":"?",u=x(s,e,1),l=/[^a-zA-Z0-9_$]/.test(o)?`"${o}"`:o;s.description&&t.push(` /** ${s.description} */`),t.push(` ${l}${i}: ${u};`)})}return t}function x(r,e={},t=0){if(!r)return"any";if(r.$ref){let o=r.$ref;if(o.startsWith("#/components/schemas/")){let s=o.replace("#/components/schemas/",""),a=e[s]||s,u=`Schema.${Xe(a)}`;return r.nullable?`${u} | null`:u}}let n;switch(r.type){case"string":r.enum?n=r.enum.map(a=>`"${a}"`).join(" | "):r.format==="binary"?n="Blob":n="string";break;case"number":case"integer":n="number";break;case"boolean":n="boolean";break;case"array":let o=r.items?x(r.items,e,t):"any";n=o.includes("|")?`(${o})[]`:`${o}[]`;break;case"object":if(r.properties){let a=Object.entries(r.properties);if(a.length===0)r.additionalProperties?n=`Record<string, ${r.additionalProperties===!0?"any":x(r.additionalProperties,e,t)}>`:n="{}";else{let i=" ".repeat(t+1),u=" ".repeat(t),m=[];a.forEach(([l,p])=>{let b=(r.required||[]).includes(l)?"":"?",d=x(p,e,t+1),P=/[^a-zA-Z0-9_$]/.test(l)?`"${l}"`:l;p.description&&m.push(`${i}/** ${p.description} */`),m.push(`${i}${P}${b}: ${d};`)}),n=`{
|
|
58
58
|
${m.join(`
|
|
59
59
|
`)}
|
|
60
|
-
${u}}`}}else r.additionalProperties?n=`Record<string, ${r.additionalProperties===!0?"any":x(r.additionalProperties,e,t)}>`:n="any";break;default:n="any";break}return r.nullable?`${n} | null`:n}function
|
|
60
|
+
${u}}`}}else r.additionalProperties?n=`Record<string, ${r.additionalProperties===!0?"any":x(r.additionalProperties,e,t)}>`:n="any";break;default:n="any";break}return r.nullable?`${n} | null`:n}function ge(r,e={}){return r.schema?x(r.schema,e):"any"}c();function fe(r,e){let{groupKey:t}=e,n=e.httpClient?.importReturnTypeName||"IRestFulEndpointsQueryReturn",o=r.map(p=>{let f=p.isQuery?"query":"mutation",b=p.isVoidArg?"void":`${n}<${p.argTypeName}>`,d=p.path;p.pathParams&&p.pathParams.length>0?(p.pathParams.forEach(O=>{d=d.replace(`{${O.name}}`,`\${queryArg.variables.${O.name}}`)}),d="`"+d+"`"):d=`"${d}"`;let A="";p.queryParams&&p.queryParams.length>0&&(A=`
|
|
61
61
|
params: {
|
|
62
62
|
${p.queryParams.map(C=>` ${C.name}: queryArg.variables.${C.name},`).join(`
|
|
63
63
|
`)}
|
|
64
|
-
},`);let P="";if(p.tags&&p.tags.length>0){let O=p.tags.map(C=>`ECacheTagTypes.${C}`).join(", ");p.isQuery?P=`
|
|
64
|
+
},`);let P="";if(p.tags&&p.tags.length>0){let O=p.tags.map(C=>`ECacheTagTypes.${C.split(/\s+/).map(S=>S.charAt(0).toUpperCase()+S.slice(1)).join("")}`).join(", ");p.isQuery?P=`
|
|
65
65
|
providesTags: [${O}],`:P=`
|
|
66
66
|
invalidatesTags: (result, error) => error ? [] : [${O}],`}return` /** ${p.summary||p.operationName} */
|
|
67
67
|
${p.operationName}: build.${f}<
|
|
@@ -101,7 +101,7 @@ ${r.map(p=>{let f=p.operationName.charAt(0).toUpperCase()+p.operationName.slice(
|
|
|
101
101
|
} = injectedRtkApi;
|
|
102
102
|
|
|
103
103
|
export default injectedRtkApi;
|
|
104
|
-
`}c();function
|
|
104
|
+
`}c();function de(r,e){return`/* eslint-disable */
|
|
105
105
|
// [Warning] Generated automatically - do not edit manually
|
|
106
106
|
|
|
107
107
|
import api from "./query.generated";
|
|
@@ -118,13 +118,13 @@ ${r.map(o=>o.isQuery?` ${o.operationName}: {
|
|
|
118
118
|
});
|
|
119
119
|
|
|
120
120
|
export default enhancedApi;
|
|
121
|
-
`}var
|
|
121
|
+
`}var G=class{constructor(e,t){this.parserService=e;this.options=t;this.infoExtractor=new D(t)}infoExtractor;async generate(){let e=this.parserService.getOperationDefinitions(this.options.filterEndpoints),t=this.infoExtractor.extractEndpointInfos(e);return this.generateRtkQueryCode(t)}generateRtkQueryCode(e){let t=this.generateTypes(e),n=fe(e,this.options),o=de(e,this.options),s=this.generateIndex(),a=e.map(u=>u.operationName),i=new Set;return e.forEach(u=>{u.tags&&Array.isArray(u.tags)&&u.tags.forEach(m=>i.add(m))}),{operationNames:a,tags:Array.from(i),files:{types:t,queryService:n,index:s,enhanceEndpoints:o}}}generateTypes(e){let t={...this.options,apiConfiguration:this.options.apiConfiguration||{file:"@/store/webapi",importName:"WebApiConfiguration"}},o=this.parserService.getApiGenerator().aliases.reduce((a,i)=>{if(he.isInterfaceDeclaration(i)||he.isTypeAliasDeclaration(i)){let u=i.name.text;return{...a,[u]:i}}return a},{}),s=this.parserService.getOperationDefinitions(this.options.filterEndpoints);return ye(e,t,o,s)}generateIndex(){let e=this.options.groupKey||"";return`/* eslint-disable */
|
|
122
122
|
// [Warning] Generated automatically - do not edit manually
|
|
123
123
|
|
|
124
124
|
export { default as ${e?`${e.charAt(0).toLowerCase()+e.slice(1)}Api`:"api"} } from "./enhanceEndpoints";
|
|
125
125
|
export * from "./query.generated";
|
|
126
126
|
export * from "./types";
|
|
127
|
-
`}};c();function
|
|
127
|
+
`}};c();function ve(){return`/* eslint-disable */
|
|
128
128
|
// [Warning] Generated automatically - do not edit manually
|
|
129
129
|
|
|
130
130
|
/**
|
|
@@ -137,7 +137,7 @@ export function withoutUndefined(obj?: Record<string, any>) {
|
|
|
137
137
|
);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
`}c();function
|
|
140
|
+
`}c();function nt(r){return r.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}function xe(r){return r.length===0?`/* eslint-disable */
|
|
141
141
|
// [Warning] Generated automatically - do not edit manually
|
|
142
142
|
|
|
143
143
|
export enum ECacheTagTypes {
|
|
@@ -146,13 +146,13 @@ export enum ECacheTagTypes {
|
|
|
146
146
|
// [Warning] Generated automatically - do not edit manually
|
|
147
147
|
|
|
148
148
|
export enum ECacheTagTypes {
|
|
149
|
-
${r.sort().map(t=>` ${t} = '${t}',`).join(`
|
|
149
|
+
${r.sort().map(t=>` ${nt(t)} = '${t}',`).join(`
|
|
150
150
|
`)}
|
|
151
151
|
}
|
|
152
|
-
`}var
|
|
152
|
+
`}var j=class{_options;openApiService=new E;groupService=new N;fileWriterService=new w;openApiDoc=null;parserService=null;schemaInterfaces={};actualSchemaFile="";generatedContent={groups:[],commonTypes:"",componentSchema:"",doNotModify:"",utils:"",tagTypes:""};allTags=new Set;constructor(e){this._options=e}async generateAll(){return await this.prepare(),await this.generateApi(),this.generateCommonTypesContent(),this.generateSchemaContent(),this.generateUtilsContent(),this.generateDoNotModifyContent(),this.generateTagTypesContent(),await this.release()}async prepare(){this.actualSchemaFile=this._options.schemaFile,this._options.remoteFile&&(this.actualSchemaFile=await this.openApiService.downloadSchema(this._options.remoteFile,this._options.schemaFile)),this.openApiDoc=await this.openApiService.getDocument(this.actualSchemaFile,this._options.httpResolverOptions),this.parserService=new q(this.openApiDoc,this._options),this.parserService.initialize();let e=this.parserService.getApiGenerator();this.schemaInterfaces=e.aliases.reduce((t,n)=>{if(be.isInterfaceDeclaration(n)||be.isTypeAliasDeclaration(n)){let o=n.name.text;return{...t,[o]:n}}return t},{})}async generateApi(){if(!this.openApiDoc||!this.parserService)throw new Error("\u8ACB\u5148\u8ABF\u7528 prepare() \u65B9\u6CD5");let e=this.openApiService.getPaths(this.openApiDoc),t=this.groupService.groupPaths(e,this._options.outputFiles);for(let n of Object.values(t))try{let o=await this.generateApiGroupContent(this._options,n);o.operationNames.length>0&&(this.generatedContent.groups.push({groupKey:n.groupKey,outputPath:n.outputPath,content:o}),o.tags&&Array.isArray(o.tags)&&o.tags.forEach(s=>this.allTags.add(s)))}catch(o){throw new Error(`\u7FA4\u7D44 ${n.groupKey} \u751F\u6210\u5931\u6557: ${o}`)}}async generateCommonTypesContent(){this.generatedContent.commonTypes=ue()}async generateSchemaContent(){this.generatedContent.componentSchema=me(this.schemaInterfaces)}async generateDoNotModifyContent(){this.generatedContent.doNotModify=le()}async generateUtilsContent(){this.generatedContent.utils=ve()}async generateTagTypesContent(){let e=Array.from(this.allTags);this.generatedContent.tagTypes=xe(e)}async release(){let e=[],t=[],n=[];try{for(let i of this.generatedContent.groups)try{if(i.content?.files){let u=$.dirname(i.outputPath),m=await this.fileWriterService.writeGroupFiles(u,{types:i.content.files.types,queryService:i.content.files.queryService,enhanceEndpoints:i.content.files.enhanceEndpoints,index:i.content.files.index});e.push(...m),n.push(i.groupKey)}}catch(u){t.push(new Error(`\u5BEB\u5165\u7FA4\u7D44 ${i.groupKey} \u5931\u6557: ${u}`))}let o=this.generatedContent.groups[0]?$.dirname($.dirname(this.generatedContent.groups[0].outputPath)):"./generated";if(this.generatedContent.commonTypes||this.generatedContent.doNotModify||this.generatedContent.utils){let i=await this.fileWriterService.writeSharedFiles(o,{commonTypes:this.generatedContent.commonTypes||void 0,doNotModify:this.generatedContent.doNotModify||void 0,utils:this.generatedContent.utils||void 0});e.push(...i)}if(this.generatedContent.tagTypes){let i=await this.fileWriterService.writeFile($.join(o,"tagTypes.ts"),this.generatedContent.tagTypes);e.push(i)}if(this.generatedContent.componentSchema){let i=await this.fileWriterService.writeSchemaFile(o,this.generatedContent.componentSchema);e.push(...i)}let s=this.generateMainIndex(n),a=await this.fileWriterService.writeFile($.join(o,"index.ts"),s);e.push(a)}catch(o){t.push(o)}return{success:t.length===0,writtenFiles:e,errors:t,generatedGroups:n}}async generateApiGroupContent(e,t){let{outputFiles:n,...o}=e,s={...o,schemaFile:this.actualSchemaFile,outputFile:t.outputPath,sharedTypesFile:`${n.outputDir}/common-types.ts`,filterEndpoints:this.groupService.createGroupFilter(t.groupKey,n),queryMatch:n.queryMatch,groupKey:t.groupKey};if(!this.openApiDoc||!this.parserService)throw new Error("OpenAPI \u6587\u6A94\u672A\u521D\u59CB\u5316\uFF0C\u8ACB\u5148\u8ABF\u7528 prepare()");return await new G(this.parserService,s).generate()}generateMainIndex(e){return`/* eslint-disable */
|
|
153
153
|
// [Warning] Generated automatically - do not edit manually
|
|
154
154
|
|
|
155
155
|
${e.map(n=>`export * from "./${n}";`).join(`
|
|
156
156
|
`)}
|
|
157
|
-
`}};async function
|
|
157
|
+
`}};async function Oe(r){let t=await new j(r).generateAll();if(!t.success&&t.errors.length>0)throw t.errors[0]}var Te=ot(g);async function at(r){let e=st(process.cwd(),r);process.chdir(it(e));let t=Te(e),n=t.default??t;"outputFiles"in n||(console.error('Configuration must include "outputFiles" property. Single file output is no longer supported.'),process.exit(1)),n.outputFiles&&n.outputFiles.outputDir&&z(n.outputFiles.outputDir);try{console.log("Generating multiple outputs..."),await Oe(n),console.log("Done")}catch(o){console.error("Generation failed:",o),process.exit(1)}}async function pt(){let r=Te("../../package.json"),e=L();I.version(r.version).usage("<path/to/config.js>").parse(process.argv);let t=I.args[0];if(I.args.length===0){I.help();return}H(t),Z(t,e),await at(t)}pt().catch(r=>{console.error("CLI execution failed:",r),process.exit(1)});export{at as runGeneration};
|
|
158
158
|
//# sourceMappingURL=cli.mjs.map
|