@vef-framework/core 1.0.130 → 1.0.131
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var l=require("@vef-framework/shared"),R=require("axios"),U=require("qs"),b=s=>{throw TypeError(s)},q=(s,a,e)=>a.has(s)||b("Cannot "+e),p=(s,a,e)=>(q(s,a,"read from private field"),e?e.call(s):a.get(s)),N=(s,a,e)=>a.has(s)?b("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(s):a.set(s,e),M=(s,a,e,t)=>(q(s,a,"write to private field"),t?t.call(s,e):a.set(s,e),e),d;const E=/\{\w+\}/;class P{constructor(a){this.options=a,N(this,d);const{baseUrl:e,timeout:t,getAccessToken:m,successCode:u=0,unauthorizedCode:w=1e3,accessDeniedCode:i=1002,tokenExpiredCode:f=1001,onUnauthorized:g,onAccessDenied:h,onErrorMessage:j,onInfoMessage:k,onWarningMessage:C}=a;M(this,d,R.create({baseURL:e,timeout:t??1e3*30,headers:{"Content-Type":"application/json"},paramsSerializer:r=>U.stringify(r,{arrayFormat:"repeat",skipNulls:!0,charset:"utf-8"}),responseType:"json",validateStatus:()=>!0})),p(this,d).interceptors.request.use(r=>{const c=m?.();c&&(r.headers.Authorization=`Bearer ${c}`);const{url:o}=r;return o&&E.test(o)&&(r.url=o.replace(E,(n,y)=>{const v=r.params?.[y];if(l.isNullish(v))throw new Error(`Path parameter ${y} is nil`);return v})),r}),p(this,d).interceptors.response.use(async r=>{const{code:c,message:o}=r.data;if(c===u)return r;throw c===w?await g?.():c===f?(await k?.("登录已失效"),await g?.()):c===i?(await C?.(`${o},请联系管理员为您开通`),await h?.()):await C?.(o),new l.VefError(c,o)},r=>{if(r instanceof R.CanceledError)return Promise.reject(r);const{response:c,message:o}=r;if(c?.data){const n=`处理请求响应信息异常:${o??"无"}`;return Promise.reject(new l.VefError(c.status,n))}else{let n=o??(l.isString(r)?r:"");return n==="Network Error"?n="接口连接异常可能原因:网络不通或存在跨域问题。":n.includes("timeout")?n="接口请求超时":n.includes("Request failed with status code")?n=`接口状态码异常:${o.substring(o.length-3)}`:n="接口未知异常",j?.(n),Promise.reject(new l.VefError(-1,n))}})}async get(a,e){return(await p(this,d).get(a,{params:e?.params,headers:e?.headers,signal:e?.signal})).data}async post(a,e,t){return(await p(this,d).post(a,e,{params:t?.params,headers:t?.headers,signal:t?.signal})).data}async put(a,e,t){return(await p(this,d).put(a,e,{params:t?.params,headers:t?.headers,signal:t?.signal})).data}async delete(a,e){return(await p(this,d).delete(a,{params:e?.params,headers:e?.headers,signal:e?.signal})).data}async upload(a,e,t){return(await p(this,d).postForm(a,e,{params:t?.params,headers:t?.headers,signal:t?.signal,onUploadProgress:l.isFunction(t?.onProgress)?m=>{const u=m.lengthComputable?m.total??0:0,{loaded:w}=m,i=Math.round(w/u*100);t.onProgress?.(i)}:void 0})).data}async download(a,e){const{data:t,headers:m}=await p(this,d).get(a,{params:e?.params,headers:e?.headers,responseType:"blob",onDownloadProgress:l.isFunction(e?.onProgress)?i=>{const f=i.lengthComputable?i.total??0:0,{loaded:g}=i,h=Math.round(g/f*100);e.onProgress?.(h)}:void 0});let u=null;try{u=JSON.parse(await t.text())}catch{}if(u&&u.code!==0)throw new l.VefError(u.code,u.message);const w=m.get("content-disposition");if(l.isString(w)){const i=/filename[^;=\n]*=(?<name>(?<quote>['"]).*?\2|[^;\n]*)/.exec(w);if(i&&i.groups){const{name:f}=i.groups,g=decodeURIComponent(f),h=document.createElement("a");h.href=URL.createObjectURL(t),h.download=l.isFunction(e?.fileName)?e.fileName(g):e?.fileName??g,h.click(),URL.revokeObjectURL(h.href)}}}}d=new WeakMap;function S(s){return Object.freeze(new P(s))}exports.RequestClient=P,exports.createRequestClient=S;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
import{isNullish as
|
|
2
|
+
import{isNullish as q,VefError as f,isString as v,isFunction as y}from"@vef-framework/shared";import M,{CanceledError as T}from"axios";import x from"qs";var P=s=>{throw TypeError(s)},j=(s,a,e)=>a.has(s)||P("Cannot "+e),u=(s,a,e)=>(j(s,a,"read from private field"),e?e.call(s):a.get(s)),z=(s,a,e)=>a.has(s)?P("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(s):a.set(s,e),L=(s,a,e,t)=>(j(s,a,"write to private field"),t?t.call(s,e):a.set(s,e),e),d;const k=/\{\w+\}/;class U{constructor(a){this.options=a,z(this,d);const{baseUrl:e,timeout:t,getAccessToken:h,successCode:l=0,unauthorizedCode:g=1e3,accessDeniedCode:i=1002,tokenExpiredCode:w=1001,onUnauthorized:m,onAccessDenied:p,onErrorMessage:E,onInfoMessage:N,onWarningMessage:C}=a;L(this,d,M.create({baseURL:e,timeout:t??1e3*30,headers:{"Content-Type":"application/json"},paramsSerializer:r=>x.stringify(r,{arrayFormat:"repeat",skipNulls:!0,charset:"utf-8"}),responseType:"json",validateStatus:()=>!0})),u(this,d).interceptors.request.use(r=>{const c=h?.();c&&(r.headers.Authorization=`Bearer ${c}`);const{url:o}=r;return o&&k.test(o)&&(r.url=o.replace(k,(n,b)=>{const R=r.params?.[b];if(q(R))throw new Error(`Path parameter ${b} is nil`);return R})),r}),u(this,d).interceptors.response.use(async r=>{const{code:c,message:o}=r.data;if(c===l)return r;throw c===g?await m?.():c===w?(await N?.("登录已失效"),await m?.()):c===i?(await C?.(`${o},请联系管理员为您开通`),await p?.()):await C?.(o),new f(c,o)},r=>{if(r instanceof T)return Promise.reject(r);const{response:c,message:o}=r;if(c?.data){const n=`处理请求响应信息异常:${o??"无"}`;return Promise.reject(new f(c.status,n))}else{let n=o??(v(r)?r:"");return n==="Network Error"?n="接口连接异常可能原因:网络不通或存在跨域问题。":n.includes("timeout")?n="接口请求超时":n.includes("Request failed with status code")?n=`接口状态码异常:${o.substring(o.length-3)}`:n="接口未知异常",E?.(n),Promise.reject(new f(-1,n))}})}async get(a,e){return(await u(this,d).get(a,{params:e?.params,headers:e?.headers,signal:e?.signal})).data}async post(a,e,t){return(await u(this,d).post(a,e,{params:t?.params,headers:t?.headers,signal:t?.signal})).data}async put(a,e,t){return(await u(this,d).put(a,e,{params:t?.params,headers:t?.headers,signal:t?.signal})).data}async delete(a,e){return(await u(this,d).delete(a,{params:e?.params,headers:e?.headers,signal:e?.signal})).data}async upload(a,e,t){return(await u(this,d).postForm(a,e,{params:t?.params,headers:t?.headers,signal:t?.signal,onUploadProgress:y(t?.onProgress)?h=>{const l=h.lengthComputable?h.total??0:0,{loaded:g}=h,i=Math.round(g/l*100);t.onProgress?.(i)}:void 0})).data}async download(a,e){const{data:t,headers:h}=await u(this,d).get(a,{params:e?.params,headers:e?.headers,responseType:"blob",onDownloadProgress:y(e?.onProgress)?i=>{const w=i.lengthComputable?i.total??0:0,{loaded:m}=i,p=Math.round(m/w*100);e.onProgress?.(p)}:void 0});let l=null;try{l=JSON.parse(await t.text())}catch{}if(l&&l.code!==0)throw new f(l.code,l.message);const g=h.get("content-disposition");if(v(g)){const i=/filename[^;=\n]*=(?<name>(?<quote>['"]).*?\2|[^;\n]*)/.exec(g);if(i&&i.groups){const{name:w}=i.groups,m=decodeURIComponent(w),p=document.createElement("a");p.href=URL.createObjectURL(t),p.download=y(e?.fileName)?e.fileName(m):e?.fileName??m,p.click(),URL.revokeObjectURL(p.href)}}}}d=new WeakMap;function O(s){return Object.freeze(new U(s))}export{U as RequestClient,O as createRequestClient};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vef-framework/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.131",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "The core of the VEF framework",
|
|
7
7
|
"author": "Venus",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"use-sync-external-store": "^1.4.0",
|
|
28
28
|
"@tanstack/react-query": "5.69.0",
|
|
29
29
|
"@tanstack/react-router": "1.114.27",
|
|
30
|
-
"@vef-framework/shared": "1.0.
|
|
30
|
+
"@vef-framework/shared": "1.0.131",
|
|
31
31
|
"axios": "1.8.4",
|
|
32
32
|
"qs": "6.14.0"
|
|
33
33
|
},
|
|
@@ -13,6 +13,9 @@ export interface RequestClientOptions {
|
|
|
13
13
|
tokenExpiredCode?: number;
|
|
14
14
|
onUnauthorized?: Provider<MaybePromise<void>>;
|
|
15
15
|
onAccessDenied?: Provider<MaybePromise<void>>;
|
|
16
|
+
onErrorMessage?: Consumer<string>;
|
|
17
|
+
onInfoMessage?: Consumer<string>;
|
|
18
|
+
onWarningMessage?: Consumer<string>;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
21
|
* The request options.
|