sy-api-pro 0.1.6 → 0.1.8

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.
Files changed (2) hide show
  1. package/dist/index.umd.js +13 -13
  2. package/package.json +11 -9
package/dist/index.umd.js CHANGED
@@ -1,13 +1,13 @@
1
- var L=(B,D,y)=>new Promise((P,x)=>{var a=m=>{try{u(y.next(m))}catch($){x($)}},p=m=>{try{u(y.throw(m))}catch($){x($)}},u=m=>m.done?P(m.value):Promise.resolve(m.value).then(a,p);u((y=y.apply(B,D)).next())});(function(B,D){typeof exports=="object"&&typeof module!="undefined"?D(require("axios")):typeof define=="function"&&define.amd?define(["axios"],D):(B=typeof globalThis!="undefined"?globalThis:B||self,D(B.axios))})(this,function(B){"use strict";function D(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var y=D(B);const P=r=>{var e;const n=(r||"").toLowerCase(),i={int:"number",integer:"number",long:"number",bigdecimal:"number",float:"number",double:"number",localdatetime:"string",date:"string",char:"string",byte:"string",short:"string",character:"string",string:"string",multipartfile:"string",boolean:"boolean",void:"void"},{listType:l}=((e=/^list<(?<listType>.+)>$/.exec(n))==null?void 0:e.groups)||{};return l?`Array<${i[l]||"any"}>`:i[n]||"any"},x=Object.freeze({_getDesc(r){const n=(r.title||"").trim();return n?` // ${n}`:""},getInterface:function({list:r,config:{ignoreParamsDTO:n,deleteParentDTO:i}}){const l=r.filter(e=>!e.id);return r.filter(e=>!n.includes(e.type)).map(e=>{if(e.id&&e.json){const s=e.json.split(`
2
- `);return s.forEach((t,o)=>{var h;const c=/(?<space>\s*)"(?<name>[a-zA-Z0-9]+)"\s?:\s*"(?<desc>.*)".*$/;if(c.test(t)){const{space:f,name:w,desc:_}=((h=c.exec(t))==null?void 0:h.groups)||{},C=(w||"").trim(),b=(_||"").trim(),q=l.filter(I=>(I.name||"").trim()+(I.title||"").trim()===C+b);if(q.length>=1){const[{type:I}]=q,R=e.required?"?":"";s[o]=t.replace(c,`${f+w+R}: ${P(I)};${b?` // ${b}`:""}`)}}/\s*"[a-zA-Z0-9]+"\s*:\s*.+$/.test(t)&&(s[o]=s[o].replace(/(\s*)"([a-zA-Z0-9]+)"\s?(:\s*.+)$/,"$1$2$3")),s[o]=s[o].replace(/(.*)\[\s+{$/,"$1Array<{").replace(/(.*)}\s*].*$/,"$1}>")}),i.some(t=>{const o=Object.prototype.toString.call(t);if(o==="[object RegExp]")return t.test(e.type);if(o==="[object String]")return t===e.type})?s.slice(1,-1).join(`
3
- `):[` ${e.name}${e.required?"":"?"}: {${this._getDesc(e)}`,...s.slice(1,-1).map(t=>` ${t}`)," }"].join(`
4
- `)}else return` ${e.name}${e.required?"":"?"}: ${P(e.type)};${this._getDesc(e)}`})}}),a=require("fs"),p=require("path"),u=require("chalk");y.default.interceptors.response.use(r=>{var n,i;return(i=(n=r.data)==null?void 0:n.head)!=null&&i.successful?r:Promise.reject(r)},r=>{throw r});const m=class{constructor(n){this.config={api:"",creatBaseFile:!0,customMethodName:"",projectId:void 0,branchId:void 0,methodId:void 0,outputPath:"",outputDirName:"",apiBaseName:"",ignoreParamsDTO:[],deleteParentDTO:[]},this.apiList=[],this.enums=[],Object.assign(this.config,n),this.getApiData()}getApiData(){return L(this,null,function*(){const{api:n,branchId:i,projectId:l,outputDirName:e,outputPath:s,methodId:d,creatBaseFile:t}=this.config;try{const{data:o}=yield y.default.get(`${n}/api/project/getProjectWithBranchById?id=${l}`);this.config.outputPath=p.join(process.cwd(),s,e||o.body.name);const c=o.body.branchList.find(f=>f.id===i);if(c)console.log(u.blueBright(`\u3010info\u3011\u6B63\u5728\u4F7F\u7528 branchName: ${c.name} branchId: ${i} methodId: ${d}`));else throw u.red(`\u3010error\u3011branchId ${i} \u4E0D\u5B58\u5728`);const h=yield y.default.get(`${n}/api/method/getMethodById?id=${d}`);this.apiList=[h.data.body]}catch(o){console.log(u.red("\u3010error\u3011: \u63A5\u53E3\u83B7\u53D6\u5F02\u5E38")),console.log(o);return}try{yield this.checkApiOutputDir()}catch(o){console.log(u.red("\u3010error\u3011: \u68C0\u67E5\u8F93\u51FA\u76EE\u5F55\u5F02\u5E38")),console.log(o);return}t&&(yield this.creatBaseFile());try{yield this.createFile()}catch(o){console.log(u.red("\u3010error\u3011: createFile \u5F02\u5E38")),console.log(o)}})}checkApiOutputDir(){const{outputPath:n}=this.config;console.log(u.blueBright(`\u3010info\u3011\u8F93\u51FA\u76EE\u5F55 ${n}`));try{a.statSync(n,{bigint:!0})}catch(i){a.mkdirSync(n,{recursive:!0})}}creatBaseFile(){return L(this,null,function*(){const{outputPath:n}=this.config,i=p.join(__dirname,"../template/api"),l=a.readdirSync(i),e=a.readdirSync(n);for(const s of l)if(!e.includes(s))try{const d=a.readFileSync(p.join(i,s));a.writeFileSync(p.join(n,s),d)}catch(d){console.log(u.red("\u3010error\u3011: \u57FA\u7840\u6587\u4EF6\u751F\u6210\u5F02\u5E38")),console.log(d)}})}createFile(){return L(this,null,function*(){const{apiBaseName:n,outputPath:i,customMethodName:l}=this.config;this.apiList.forEach(e=>{var q,I,R;const s=F=>F.replace(/(-[a-z])|(^[a-z])/g,g=>g.replace("-","").toLocaleUpperCase()),d=new RegExp(`(${n})?(/)?(?<apiDirName>[a-zA-Z0-9_]+)/.*$`),{apiDirName:t}=((q=d.exec(e.path))==null?void 0:q.groups)||{},o=l||e.name,c=s(`${t}-`+o);try{a.statSync(p.join(i,t)).isDirectory()}catch(F){a.mkdirSync(p.join(i,t))}let h="";try{h=a.readFileSync(p.join(i,t,"models.ts")).toString()}catch(F){a.writeFileSync(p.join(i,`./${t}/models.ts`),"")}let f=[],w=[];try{f=(I=e.paramList)!=null&&I.length?[h?"":"/* ************************************************ */",`/** ${e.title} RequestModel */`,`export interface ${c}ReqModel {`,...x.getInterface({list:e.paramList||[],config:this.config}),"}",""]:[],w=(R=e.returnList)!=null&&R.length?[f.length?"":"/* ************************************************ */",`/** ${e.title} ResponseModel */`,`export interface ${c}ResModel {`,...x.getInterface({list:e.returnList||[],config:this.config}),"}",""]:[]}catch(F){throw console.log(u.red(`\u3010error\u3011\u7C7B\u578B\u751F\u6210\u5931\u8D25 projectId: ${this.config.projectId} methodId: ${e.id} path: ${e.path}`)),u.red(F)}h.includes(`export interface ${c}ReqModel {`)?console.log(u.yellowBright(`\u3010warning\u3011./${t}/models.ts \u5DF2\u5B58\u5728 ${c}ReqModel`)):f.length&&(a.appendFileSync(p.join(i,`./${t}/models.ts`),f.join(`
5
- `)),console.log(u.greenBright(`\u3010success\u3011./${t}/models.ts \u6210\u529F\u6DFB\u52A0 ${c}ReqModel`))),h.includes(`export interface ${c}ResModel {`)?console.log(u.yellowBright(`\u3010warning\u3011./${t}/models.ts \u5DF2\u5B58\u5728 ${c}ResModel`)):w.length&&(a.appendFileSync(p.join(i,`./${t}/models.ts`),w.join(`
6
- `)),console.log(u.greenBright(`\u3010success\u3011./${t}/models.ts \u6210\u529F\u6DFB\u52A0 ${c}ResModel`)));const b=[e.title&&` /** ${e.title} */`,` ${o}(${f.length?`params: M.${c}ReqModel`:""}) {`,` return axios.${e.method.toLowerCase()}<ApiResponse<${w.length?`M.${c}ResModel`:"any"}>>(`,` \`\${ApiPrefix}/${e.path}\`,`,f.length&&` ${["post","put","patch"].includes(e.method.toLowerCase())?"params":"{ params }"},`," );"," },"].filter(Boolean);/^[a-zA-Z]+$/.test((e.method||"").trim())||console.log(u.yellowBright(`\u3010warning\u3011\u63A5\u53E3\u8BF7\u6C42\u7C7B\u578B\u5F02\u5E38\uFF0C\u8BF7\u624B\u52A8\u8865\u5168 method\uFF1A${e.method} path: ${e.path} methodId: ${this.config.methodId} projectId: ${this.config.projectId}`));try{const F=a.readFileSync(p.join(i,t,"api.ts")).toString(),g=F.split(`
7
- `);if(F.includes(` ${o}(`)){const j=g.findIndex(A=>A.includes(` ${o}(`)),N=g.findIndex((A,O)=>O>j&&A===" },");console.log(u.yellowBright([`\u3010warning\u3011./${t}/api.ts \u5DF2\u5B58\u5728api`,...g.slice(j,N+1).map(A=>` ${A}`)].join(`
8
- `))),console.log(u.yellowBright(`\u3010warning\u3011\u5F53\u524D\u9700\u8981\u751F\u6210\u7684 path \u4E3A ${e.path}, methodName \u4E3A ${o}`))}else g.splice(g.map(j=>j.includes("}")).lastIndexOf(!0),0,b.join(`
9
- `)),a.writeFileSync(p.join(i,`./${t}/api.ts`),g.join(`
10
- `)),console.log(u.greenBright(`\u3010success\u3011./${t}/api.ts \u6210\u529F\u6DFB\u52A0 ${o}`))}catch(F){a.writeFileSync(p.join(i,`./${t}/api.ts`),["import axios from 'axios';","","import * as M from './models';","import { ApiResponse } from '../responseModel';","import { ApiPrefix } from '../apiPrefix';","","export * from './models';","",`export const ${s(t)}Api = {`,...b,"};",""].join(`
11
- `)),console.log(u.greenBright(`\u3010success\u3011./${t}/api.ts \u6210\u529F\u6DFB\u52A0 ${o}`));const g=a.readFileSync(p.join(i,"index.ts")).toString();if(!g.includes(`export * from './${t}/api'`)){const j=g.split(`
12
- `);j.push(`export * from './${t}/api';`);const N=j.slice(1).filter(Boolean);N.sort((A,O)=>A.localeCompare(O)),a.writeFileSync(p.join(i,"index.ts"),[j[0]||"","",...N,""].join(`
13
- `))}}})})}},$=require("fs"),S=require("path"),{program:M}=require("commander"),E=require("chalk");M.name("sy-api-pro").version(require(S.resolve(__dirname,"../package.json")).version),M.command("init").description("\u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6").option("-p, --path <char>","","./src/apis").action((r,n,i)=>{const l=S.join(process.cwd(),r.path),e=S.join(l,".api-config.ts");try{if($.existsSync(l)||$.mkdirSync(l),$.existsSync(e))return console.log(E.yellowBright(`\u3010warning\u3011: ${e} \u914D\u7F6E\u6587\u4EF6\u5DF2\u5B58\u5728`));const s=$.readFileSync(S.join(__dirname,"../template/config/.api-config.ts"));$.writeFileSync(e,s),console.log(E.greenBright(`\u3010success\u3011: \u914D\u7F6E\u6587\u4EF6\u5DF2\u751F\u6210, \u8DEF\u5F84\uFF1A${e}`))}catch(s){console.log(E.red("\u3010error\u3011: \u914D\u7F6E\u6587\u4EF6\u751F\u6210\u5F02\u5E38")),console.log(s)}}),M.command("create").description("\u751F\u6210api\u6587\u4EF6\u53CA\u7C7B\u578B\u5B9A\u4E49").requiredOption("-i, --id <id>","methodId").option("-n, --name <name>","customMethodName").requiredOption("--config <filePath>","configFilePath").requiredOption("--project-id <id>","projectId").action((r,n,i)=>{var c;const{id:l,name:e,config:s,projectId:d}=r;if(!l||!/^\d+$/.test(l))throw E.red("\u3010error\u3011\u8BF7\u4F20\u5165\u6B63\u786E\u7684 id");const t=require(S.resolve(process.cwd(),s)),o=(t.projects||[]).find(h=>+h.projectId==+d);if(o){if(!o.branchId)throw E.red("\u3010error\u3011\u8BF7\u4F20\u5165\u6B63\u786E\u7684 branchId");if(!t.api)throw E.red("\u3010error\u3011\u8BF7\u4F20\u5165\u6B63\u786E\u7684 api");new m({api:t.api,creatBaseFile:(c=o.creatBaseFile)!=null?c:!0,methodId:l,customMethodName:e,outputPath:t.outputPath||"./src/apis",projectId:o.projectId,branchId:+o.branchId,outputDirName:o.outputDirName||"",apiBaseName:o.apiBaseName||"",ignoreParamsDTO:o.ignoreParamsDTO||[],deleteParentDTO:o.deleteParentDTO||[]})}else console.log(E.red(`\u3010error\u3011config \u914D\u7F6E\u6587\u4EF6\u4E2D projects \u672A\u5305\u542B\u4F20\u5165\u7684 projectId ${d}`))}),M.parse()});
1
+ (function(y,x){typeof exports=="object"&&typeof module!="undefined"?x(require("axios")):typeof define=="function"&&define.amd?define(["axios"],x):(y=typeof globalThis!="undefined"?globalThis:y||self,x(y.axios))})(this,function(y){"use strict";var N=(y,x,B)=>new Promise((d,h)=>{var a=f=>{try{j(B.next(f))}catch(w){h(w)}},O=f=>{try{j(B.throw(f))}catch(w){h(w)}},j=f=>f.done?d(f.value):Promise.resolve(f.value).then(a,O);j((B=B.apply(y,x)).next())});const x=l=>{var o;const n=(l||"").toLowerCase(),i={int:"number",integer:"number",long:"number",bigdecimal:"number",float:"number",double:"number",localdatetime:"string",date:"string",char:"string",byte:"string",short:"string",character:"string",string:"string",multipartfile:"string",boolean:"boolean",void:"void"},{listType:r}=((o=new RegExp("^list<(?<listType>.+)>$").exec(n))==null?void 0:o.groups)||{};return r?`Array<${i[r]||"any"}>`:i[n]||"any"},B=Object.freeze({_getDesc(l){const n=(l.title||"").trim();return n?` // ${n}`:""},getInterface:function({list:l,config:{ignoreParamsDTO:n,deleteParentDTO:i}}){const r=l.map((t,s)=>t.level===0?s:null).filter(t=>t!==null);r.length>1&&r.push(l.length);const o=r.length>1?r.map((t,s)=>l.slice(t,r[s+1])):l,g=l.filter(t=>!t.json);return o.filter(t=>!n.includes(t.type)).filter(t=>t.json).map(t=>{const s=(t.json||"").split(`
2
+ `);return s.forEach((e,p)=>{var S;const u=new RegExp('(?<space>\\s*)"(?<name>[a-zA-Z0-9]+)"\\s?:\\s*"(?<desc>.*)".*$');if(u.test(e)){const{space:I,name:q,desc:_}=((S=u.exec(e))==null?void 0:S.groups)||{},v=(q||"").trim(),M=(_||"").trim(),R=g.filter(D=>(D.name||"").trim()+(D.title||"").trim()===v+M);if(R.length>=1){const[{type:D}]=R,L=t.required?"?":"";s[p]=e.replace(u,`${I+q+L}: ${x(D)};${M?` // ${M}`:""}`)}}/\s*"[a-zA-Z0-9]+"\s*:\s*.+$/.test(e)&&(s[p]=s[p].replace(/(\s*)"([a-zA-Z0-9]+)"\s?(:\s*.+)$/,"$1$2$3")),s[p]=s[p].replace(/(.*)\[\s+{$/,"$1Array<{").replace(/(.*)}\s*].*$/,"$1}>")}),i.some(e=>{const p=Object.prototype.toString.call(e);if(p==="[object RegExp]")return e.test(t.type);if(p==="[object String]")return e===t.type})?s.slice(1,-1).join(`
3
+ `):[` ${t.name}${t.required?"":"?"}: {${this._getDesc(t)}`,...s.slice(1,-1).map(e=>` ${e}`)," }"].join(`
4
+ `)})}}),d=require("fs"),h=require("path"),a=require("chalk");y.interceptors.response.use(l=>{var n,i;return(i=(n=l.data)==null?void 0:n.head)!=null&&i.successful?l:Promise.reject(l)},l=>{throw l});const O=class{constructor(n){this.config={api:"",creatBaseFile:!0,customMethodName:"",projectId:void 0,branchId:void 0,methodId:void 0,outputPath:"",outputDirName:"",apiBaseName:"",ignoreParamsDTO:[],deleteParentDTO:[]},this.apiList=[],this.enums=[],Object.assign(this.config,n),this.getApiData()}getApiData(){return N(this,null,function*(){const{api:n,branchId:i,projectId:r,outputDirName:o,outputPath:g,methodId:t,creatBaseFile:s}=this.config;try{const{data:c}=yield y.get(`${n}/api/project/getProjectWithBranchById?id=${r}`);this.config.outputPath=h.join(process.cwd(),g,o||c.body.name);const e=c.body.branchList.find(u=>u.id===i);if(e)console.log(a.blueBright(`【info】正在使用 branchName: ${e.name} branchId: ${i} methodId: ${t}`));else throw a.red(`【error】branchId ${i} 不存在`);const p=yield y.get(`${n}/api/method/getMethodById?id=${t}`);this.apiList=[p.data.body]}catch(c){console.log(a.red("【error】: 接口获取异常")),console.log(c);return}try{yield this.checkApiOutputDir()}catch(c){console.log(a.red("【error】: 检查输出目录异常")),console.log(c);return}s&&(yield this.creatBaseFile());try{yield this.createFile()}catch(c){console.log(a.red("【error】: createFile 异常")),console.log(c)}})}checkApiOutputDir(){const{outputPath:n}=this.config;console.log(a.blueBright(`【info】输出目录 ${n}`));try{d.statSync(n,{bigint:!0})}catch(i){d.mkdirSync(n,{recursive:!0})}}creatBaseFile(){return N(this,null,function*(){const{outputPath:n}=this.config,i=h.join(__dirname,"../template/api"),r=d.readdirSync(i),o=d.readdirSync(n);for(const g of r)if(!o.includes(g))try{const t=d.readFileSync(h.join(i,g));d.writeFileSync(h.join(n,g),t)}catch(t){console.log(a.red("【error】: 基础文件生成异常")),console.log(t)}})}createFile(){return N(this,null,function*(){const{apiBaseName:n,outputPath:i,customMethodName:r}=this.config;this.apiList.forEach(o=>{var R,D,L;const g=$=>$.replace(/(-[a-z])|(^[a-z])/g,m=>m.replace("-","").toLocaleUpperCase()),t=o.path.startsWith("/")?o.path:`/${o.path}`,s=n.startsWith("/")?n:`/${n}`,c=new RegExp(`(${s})?(/)?(?<apiDirName>[a-zA-Z0-9_]+)/.*$`),{apiDirName:e}=((R=c.exec(t))==null?void 0:R.groups)||{},p=r||o.name,u=g(`${e}-`+p);try{d.statSync(h.join(i,e)).isDirectory()}catch($){d.mkdirSync(h.join(i,e))}let S="";try{S=d.readFileSync(h.join(i,e,"models.ts")).toString()}catch($){d.writeFileSync(h.join(i,`./${e}/models.ts`),"")}let I=[],q=[];try{const $=B.getInterface({list:o.paramList||[],config:this.config});I=(D=o.paramList)!=null&&D.length&&$.length?[S?"":"/* ************************************************ */",`/** ${o.title} RequestModel */`,`export interface ${u}ReqModel {`,...$,"}",""]:[];const m=B.getInterface({list:o.returnList||[],config:this.config});q=(L=o.returnList)!=null&&L.length&&m.length?[I.length?"":"/* ************************************************ */",`/** ${o.title} ResponseModel */`,`export interface ${u}ResModel {`,...m,"}",""]:[]}catch($){throw console.log(a.red(`【error】类型生成失败 projectId: ${this.config.projectId} methodId: ${o.id} path: ${t}`)),a.red($)}S.includes(`export interface ${u}ReqModel {`)?console.log(a.yellowBright(`【warning】./${e}/models.ts 已存在 ${u}ReqModel`)):I.length&&(d.appendFileSync(h.join(i,`./${e}/models.ts`),I.join(`
5
+ `)),console.log(a.greenBright(`【success】./${e}/models.ts 成功添加 ${u}ReqModel`))),S.includes(`export interface ${u}ResModel {`)?console.log(a.yellowBright(`【warning】./${e}/models.ts 已存在 ${u}ResModel`)):q.length&&(d.appendFileSync(h.join(i,`./${e}/models.ts`),q.join(`
6
+ `)),console.log(a.greenBright(`【success】./${e}/models.ts 成功添加 ${u}ResModel`)));const M=[o.title&&` /** ${o.title} */`,` ${p}(${I.length?`params: M.${u}ReqModel`:""}) {`,` return axios.${o.method.toLowerCase()}<ApiResponse<${q.length?`M.${u}ResModel`:"any"}>>(`,` \`\${ApiPrefix}${t}\`,`,I.length&&` ${["post","put","patch"].includes(o.method.toLowerCase())?"params":"{ params }"},`," );"," },"].filter(Boolean);/^[a-zA-Z]+$/.test((o.method||"").trim())||console.log(a.yellowBright(`【warning】接口请求类型异常,请手动补全 method:${o.method} path: ${t} methodId: ${this.config.methodId} projectId: ${this.config.projectId}`));try{const $=d.readFileSync(h.join(i,e,"api.ts")).toString(),m=$.split(`
7
+ `);if($.includes(` ${p}(`)){const b=m.findIndex(P=>P.includes(` ${p}(`)),A=m.findIndex((P,T)=>T>b&&P===" },");console.log(a.yellowBright([`【warning】./${e}/api.ts 已存在api`,...m.slice(b,A+1).map(P=>` ${P}`)].join(`
8
+ `))),console.log(a.yellowBright(`【warning】当前需要生成的 path ${t}, methodName ${p}`))}else m.splice(m.map(b=>b.includes("}")).lastIndexOf(!0),0,M.join(`
9
+ `)),d.writeFileSync(h.join(i,`./${e}/api.ts`),m.join(`
10
+ `)),console.log(a.greenBright(`【success】./${e}/api.ts 成功添加 ${p}`))}catch($){d.writeFileSync(h.join(i,`./${e}/api.ts`),["import axios from 'axios';","","import * as M from './models';","import { ApiResponse } from '../responseModel';","import { ApiPrefix } from '../apiPrefix';","","export * from './models';","",`export const ${g(e)}Api = {`,...M,"};",""].join(`
11
+ `)),console.log(a.greenBright(`【success】./${e}/api.ts 成功添加 ${p}`));const m=d.readFileSync(h.join(i,"index.ts")).toString();if(!m.includes(`export * from './${e}/api'`)){const b=m.split(`
12
+ `);b.push(`export * from './${e}/api';`);const A=b.slice(1).filter(Boolean);A.sort((P,T)=>P.localeCompare(T)),d.writeFileSync(h.join(i,"index.ts"),[b[0]||"","",...A,""].join(`
13
+ `))}}})})}},j=require("fs"),f=require("path"),{program:w}=require("commander"),F=require("chalk");w.name("sy-api-pro").version(require(f.resolve(__dirname,"../package.json")).version),w.command("init").description("初始化配置文件").option("-p, --path <char>","","./src/apis").action((l,n,i)=>{const r=f.join(process.cwd(),l.path),o=f.join(r,".api-config.ts");try{if(j.existsSync(r)||j.mkdirSync(r),j.existsSync(o))return console.log(F.yellowBright(`【warning】: ${o} 配置文件已存在`));const g=j.readFileSync(f.join(__dirname,"../template/config/.api-config.ts"));j.writeFileSync(o,g),console.log(F.greenBright(`【success】: 配置文件已生成, 路径:${o}`))}catch(g){console.log(F.red("【error】: 配置文件生成异常")),console.log(g)}}),w.command("create").description("生成api文件及类型定义").requiredOption("-i, --id <id>","methodId").option("-n, --name <name>","customMethodName").requiredOption("--config <filePath>","configFilePath").requiredOption("--project-id <id>","projectId").action((l,n,i)=>{var e;const{id:r,name:o,config:g,projectId:t}=l;if(!r||!/^\d+$/.test(r))throw F.red("【error】请传入正确的 id");const s=require(f.resolve(process.cwd(),g)),c=(s.projects||[]).find(p=>+p.projectId==+t);if(c){if(!c.branchId)throw F.red("【error】请传入正确的 branchId");if(!s.api)throw F.red("【error】请传入正确的 api");new O({api:s.api,creatBaseFile:(e=c.creatBaseFile)!=null?e:!0,methodId:r,customMethodName:o,outputPath:s.outputPath||"./src/apis",projectId:c.projectId,branchId:+c.branchId,outputDirName:c.outputDirName||"",apiBaseName:c.apiBaseName||"",ignoreParamsDTO:c.ignoreParamsDTO||[],deleteParentDTO:c.deleteParentDTO||[]})}else console.log(F.red(`【error】config 配置文件中 projects 未包含传入的 projectId ${t}`))}),w.parse()});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sy-api-pro",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "main": "./bin/index.ts",
5
5
  "types": "./bin/model.d.ts",
6
6
  "bin": {
@@ -22,20 +22,22 @@
22
22
  "scripts": {
23
23
  "build": "vite build",
24
24
  "api": "ts-node src/index.ts create --config ./src/.api-config.ts --project-id 804",
25
+ "api2": "ts-node src/index.ts create --config ./src/.api-config.ts --project-id 801 -i 674266",
25
26
  "test:dist-init": "ts-node bin/index.ts init",
26
- "test:dist-create": "ts-node bin/index.ts create --config ./src/.api-config.ts --project-id 804"
27
+ "test:dist-create": "ts-node bin/index.ts create --config ./src/.api-config.ts --project-id 804",
28
+ "test:dist-create2": "ts-node bin/index.ts create --config ./src/.api-config.ts --project-id 801"
27
29
  },
28
30
  "description": "...",
29
31
  "dependencies": {
30
- "axios": "^0.26.1",
31
- "chalk": "4.1.2",
32
- "commander": "^9.1.0",
33
- "ts-node": "^10.7.0",
34
- "typescript": "^4.6.3",
35
- "@types/node": "^17.0.23"
32
+ "@types/node": "^18.15.5",
33
+ "axios": "^1.3.4",
34
+ "chalk": "^4.1.2",
35
+ "commander": "^10.0.0",
36
+ "ts-node": "^10.9.1",
37
+ "typescript": "^5.0.2"
36
38
  },
37
39
  "devDependencies": {
38
40
  "rollup-plugin-terser": "^7.0.2",
39
- "vite": "^2.9.1"
41
+ "vite": "^4.2.1"
40
42
  }
41
43
  }