"use strict";const u=require("../common/vendor.js"),T=require("./config.js"),i={defaults:{headers:{"Content-Type":"application/json;charset=utf-8"},timeout:1e5},baseURL:T.config.apiBaseUrl},m=[],f=[];p(async t=>{if(!(t.headers&&t.headers.isToken===!1)){const e=u.index.getStorageSync("token");if(!e){try{u.index.reLaunch({url:"/subpackage/login/login"})}catch{}return Promise.reject({message:"NO_TOKEN"})}t.headers={...t.headers||{},Authorization:`Bearer ${e}`}}else{const e={...t.headers||{}};"Authorization"in e&&delete e.Authorization,t.headers=e}return t});let h=!1;y(async t=>{if(t.statusCode===200&&t.data.code===401){if(h)return Promise.reject({message:"已在跳转登录页",statusCode:401});h=!0;try{u.index.removeStorageSync("token"),await u.index.reLaunch({url:"/subpackage/login/login"})}catch(e){u.index.__f__("error","at utils/request.js:67","401跳转登录失败:",e)}finally{h=!1}return Promise.reject({message:"Token无效或已过期,请重新登录",statusCode:401})}return t});function p(t){m.push(t)}function y(t){f.push(t)}async function R(t){let n={...t};for(const e of m)n=await e(n);return n}async function U(t){let n={...t};for(const e of f)n=await e(n);return n}function b(t){let n="";for(const o of Object.keys(t)){const a=t[o];var e=encodeURIComponent(o)+"=";if(a!==null&&a!==""&&typeof a<"u")if(typeof a=="object"){for(const r of Object.keys(a))if(a[r]!==null&&a[r]!==""&&typeof a[r]<"u"){let c=o+"["+r+"]";var s=encodeURIComponent(c)+"=";n+=s+encodeURIComponent(a[r])+"&"}}else n+=e+encodeURIComponent(a)+"&"}return n}function d(t){const n={method:"GET",headers:{...i.defaults.headers},timeout:i.defaults.timeout,baseURL:i.baseURL,...t};return R(n).then(e=>{let s=e.baseURL+e.url;if(e.method.toUpperCase()==="GET"&&e.params){const a=b(e.params);a&&(s+=(s.includes("?")?"&":"?")+a.slice(0,-1))}const o={url:s,method:e.method.toUpperCase(),header:e.headers,timeout:e.timeout};return e.method.toUpperCase()!=="GET"&&e.data&&(o.data=e.data),new Promise((a,r)=>{u.index.request({...o,success:c=>{U(c).then(l=>{a(l)}).catch(l=>{r(l)})},fail:c=>{r(c)}})})}).catch(e=>(u.index.__f__("error","at utils/request.js:217","Request interceptor error:",e),Promise.reject(e)))}function k(t,n={},e={}){return d({method:"GET",url:t,params:n,...e})}function q(t,n={},e={}){return d({method:"POST",url:t,data:n,...e})}function P(t,n={},e={}){return d({method:"PUT",url:t,data:n,...e})}function _(t,n={},e={}){return d({method:"DELETE",url:t,params:n,...e})}function I(t){const n={headers:{...i.defaults.headers},timeout:i.defaults.timeout,baseURL:i.baseURL,...t};return R(n).then(e=>new Promise((s,o)=>{u.index.uploadFile({url:e.baseURL+e.url,filePath:e.filePath,name:e.name||"file",header:e.headers,formData:e.formData,success:a=>{if(typeof a.data=="string")try{a.data=JSON.parse(a.data)}catch{}U(a).then(r=>{s(r)}).catch(r=>{o(r)})},fail:a=>{o(a)}})}))}const L={request:d,uploadFile:I,get:k,post:q,put:P,delete:_,addRequestInterceptor:p,addResponseInterceptor:y,service:i};exports.http=L; //# sourceMappingURL=../../.sourcemap/mp-weixin/utils/request.js.map