anl
Version:
FE command line tool
1 lines • 1.52 kB
JavaScript
const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../utils/logger.cjs`),n=require(`../utils/index.cjs`);let r=require(`path`);r=e.__toESM(r);let i=require(`http`);i=e.__toESM(i);let a=require(`https`);a=e.__toESM(a);async function o(e){if(!e.swaggerJsonUrl)return Promise.reject(Error(`swaggerJsonUrl 未配置,请检查 swaggerConfig.url`));if(/^https?:\/\//.test(e.swaggerJsonUrl))return s(e);try{let t=n.requireModule(r.default.isAbsolute(e.swaggerJsonUrl)?e.swaggerJsonUrl:r.default.resolve(process.cwd(),e.swaggerJsonUrl));return Promise.resolve(t)}catch(e){return t.log.error(String(e)),Promise.reject(Error(String(e)))}}function s(e){let{swaggerJsonUrl:n=``,headers:r={}}=e,o=e.timeout??6e4;return new Promise((e,s)=>{let c,l=n.startsWith(`https`)?a.default.request:i.default.request;t.log.verbose(`Request Start: ${n}`);let u=l(n,{method:`GET`,rejectUnauthorized:!1,headers:{Accept:`*/*`,"Accept-Encoding":`utf-8`,"Content-Type":`application/x-www-form-urlencoded`,...r}},r=>{r.setEncoding(`utf-8`);let i=``;r.on(`data`,e=>{i+=e.toString()}),r.on(`end`,()=>{clearTimeout(c);try{let r=JSON.parse(i);t.log.verbose(`Request Successful: ${n}`),e(r)}catch(e){t.log.error(`Request Failed: ${n}`),s(Error(String(e)))}}),r.on(`error`,e=>{t.log.error(`Request Failed: ${n}`),s(e)})});u.on(`timeout`,e=>{t.log.error(`Request Timeout: ${n}`),s(e??Error(`Request Timeout: ${n}`))}),c=setTimeout(()=>{let e=Error();e.name=`Request Timeout`,e.message=n,u.emit(`timeout`,e)},o),u.end()})}exports.getSwaggerJson=o;