@andbridge/glowpod 1.0.0 → 1.0.2
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/build/core/core.d.ts +11 -0
- package/build/glowpod.d.ts +2 -0
- package/build/glowpod.esm.js +2 -0
- package/build/glowpod.esm.js.map +1 -0
- package/build/glowpod.js +2 -0
- package/build/glowpod.js.map +1 -0
- package/build/glowpod.umd.js +2 -0
- package/build/glowpod.umd.js.map +1 -0
- package/build/interceptors/interceptors.d.ts +5 -0
- package/build/model/model.d.ts +28 -0
- package/package.json +32 -8
- package/glowpod.ts +0 -3
- package/src/config/config.ts +0 -2
- package/src/core/core.ts +0 -45
- package/src/interceptors/interceptors.tsx +0 -105
- package/src/model/model.ts +0 -31
- package/tsconfig.json +0 -9
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Options } from "../model/model";
|
|
2
|
+
import { AxiosInstance, CreateAxiosDefaults } from "axios";
|
|
3
|
+
export declare class Core {
|
|
4
|
+
protected instance: AxiosInstance;
|
|
5
|
+
constructor(options: CreateAxiosDefaults);
|
|
6
|
+
getInstance: () => AxiosInstance;
|
|
7
|
+
Get: <T>(options: Options) => T;
|
|
8
|
+
Put: <T>(options: Options) => T;
|
|
9
|
+
Delete: <T>(options: Options) => T;
|
|
10
|
+
Post: <T>(options: Options) => T;
|
|
11
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"axios";class s{constructor(s){this.getInstance=()=>this.instance,this.Get=e=>this.instance({method:"GET",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Put=e=>this.instance({method:"PUT",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Delete=e=>this.instance({method:"DELETE",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Post=e=>this.instance({method:"POST",url:e.url,data:e.params,headers:{...e.headers},...e.others}),this.instance=e.create(s)}}const t=()=>{},a=()=>{},r=()=>{};var o;!function(e){e[e.success=200]="success"}(o||(o={}));const n=({instance:e,authTokenStorageName:s="token",authFailedCaller:n=t,networkSuccessCode:c=200,authFailedCode:d=401,networkFailedCaller:i=a,serverKillCaller:h=r,responseStruct:l={codeName:"code",messageName:"message",dataName:"data"}})=>{let u=null,m=!0;const p=e=>(u&&clearTimeout(u),u=setTimeout(()=>{m&&(e.status==o.success?(e.data?.[l.codeName]==d&&n(),e.data?.[l.codeName]!=c&&i()):h())},0),()=>m=!1);e.interceptors.request.use(async e=>{const t=localStorage.getItem(s);return t&&e.headers&&e.headers.set(s,t),e},e=>(console.log("请求错误拦截器:",e),p(e),Promise.reject(e))),e.interceptors.response.use(s=>{if("blob"===s.config.responseType)return s;if(s.data?.[l.codeName]===c)return s.data?.[l.dataName];{const t=p(s);throw{...s,hiddenDefaultErrorHandler:t,uri:e.getUri()}}},s=>{const t=p(s);throw{...s,hiddenDefaultErrorHandler:t,uri:e.getUri()}})};export{s as GlowPod,n as setupInterceptors};
|
|
2
|
+
//# sourceMappingURL=glowpod.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glowpod.esm.js","sources":["../../core/core.ts","../../interceptors/interceptors.tsx"],"sourcesContent":["import type { Options } from \"../model/model\";\nimport axios, { AxiosInstance, CreateAxiosDefaults } from \"axios\";\nexport class Core {\n protected instance: AxiosInstance;\n\n constructor(options: CreateAxiosDefaults) {\n this.instance = axios.create(options);\n }\n\n public getInstance = () => {\n return this.instance;\n };\n public Get = <T>(options: Options): T =>\n this.instance({\n method: \"GET\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Put = <T>(options: Options): T =>\n this.instance({\n method: \"PUT\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Delete = <T>(options: Options): T =>\n this.instance({\n method: \"DELETE\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Post = <T>(options: Options): T =>\n this.instance({\n method: \"POST\",\n url: options.url,\n data: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n}\n","import { AxiosInstance, AxiosError } from \"axios\";\nimport { InterceptorsOptions } from \"../model/model\";\n\n/**\n * 设置拦截器\n * @param instance axios实例\n * @param @InterceptorsOptions\n * @returns void\n */\n\nconst _authFailedCaller = () => {};\n\nconst _networkFailedCaller = () => {};\n\nconst _serverKillCaller = () => {};\n\nenum NetworkStatus {\n success = 200,\n}\n\nexport const setupInterceptors = ({\n instance,\n authTokenStorageName = \"token\",\n authFailedCaller = _authFailedCaller,\n networkSuccessCode = 200,\n authFailedCode = 401,\n networkFailedCaller = _networkFailedCaller,\n serverKillCaller = _serverKillCaller,\n responseStruct = {\n codeName: \"code\",\n messageName: \"message\",\n dataName: \"data\",\n },\n}: InterceptorsOptions & {\n instance: AxiosInstance;\n}) => {\n let timer: NodeJS.Timeout | null = null;\n let isDefaultOpenErrorHandle = true;\n const defaultErrorHandler = (response: any) => {\n const hiddenDefaultErrorHandler = () => (isDefaultOpenErrorHandle = false);\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n if (!isDefaultOpenErrorHandle) return;\n if (response.status != NetworkStatus.success) {\n serverKillCaller();\n return;\n }\n if (response.data?.[responseStruct.codeName] == authFailedCode) {\n authFailedCaller();\n }\n if (response.data?.[responseStruct.codeName] != networkSuccessCode) {\n networkFailedCaller();\n }\n }, 0);\n return hiddenDefaultErrorHandler;\n };\n\n // 请求拦截器\n instance.interceptors.request.use(\n async (config) => {\n // 从存储中获取token\n const token = localStorage.getItem(authTokenStorageName as string);\n if (token && config.headers) {\n config.headers.set(authTokenStorageName, token);\n }\n return config;\n },\n (error: AxiosError) => {\n console.log(\"请求错误拦截器:\", error);\n defaultErrorHandler(error);\n return Promise.reject(error);\n }\n );\n\n // 响应拦截器\n\n instance.interceptors.response.use(\n (response) => {\n if (response.config.responseType === \"blob\") {\n return response;\n } else {\n switch (response.data?.[responseStruct.codeName]) {\n case networkSuccessCode:\n return response.data?.[responseStruct.dataName];\n default:\n const hiddenDefaultErrorHandler = defaultErrorHandler(response);\n throw {\n ...response,\n hiddenDefaultErrorHandler,\n uri: instance.getUri(),\n };\n }\n }\n },\n (error: AxiosError) => {\n const hiddenDefaultErrorHandler = defaultErrorHandler(error);\n throw { ...error, hiddenDefaultErrorHandler, uri: instance.getUri() };\n }\n );\n};\n"],"names":["Core","constructor","options","this","getInstance","instance","Get","method","url","params","headers","others","Put","Delete","Post","data","axios","create","_authFailedCaller","_networkFailedCaller","_serverKillCaller","NetworkStatus","setupInterceptors","authTokenStorageName","authFailedCaller","networkSuccessCode","authFailedCode","networkFailedCaller","serverKillCaller","responseStruct","codeName","messageName","dataName","timer","isDefaultOpenErrorHandle","defaultErrorHandler","response","clearTimeout","setTimeout","status","success","hiddenDefaultErrorHandler","interceptors","request","use","async","token","localStorage","getItem","config","set","error","console","log","Promise","reject","responseType","uri","getUri"],"mappings":"2BAEaA,EAGXC,WAAAA,CAAYC,GAILC,KAAAC,YAAc,IACZD,KAAKE,SAEPF,KAAAG,IAAUJ,GACfC,KAAKE,SAAS,CACZE,OAAQ,MACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAS,IAAUV,GACfC,KAAKE,SAAS,CACZE,OAAQ,MACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAU,OAAaX,GAClBC,KAAKE,SAAS,CACZE,OAAQ,SACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAW,KAAWZ,GAChBC,KAAKE,SAAS,CACZE,OAAQ,OACRC,IAAKN,EAAQM,IACbO,KAAMb,EAAQO,OACdC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SApCbR,KAAKE,SAAWW,EAAMC,OAAOf,EAC/B,ECGF,MAAMgB,EAAoBA,OAEpBC,EAAuBA,OAEvBC,EAAoBA,OAE1B,IAAKC,GAAL,SAAKA,GACHA,EAAAA,EAAA,QAAA,KAAA,SACD,CAFD,CAAKA,IAAAA,EAAa,CAAA,IAIX,MAAMC,EAAoBA,EAC/BjB,WACAkB,uBAAuB,QACvBC,mBAAmBN,EACnBO,qBAAqB,IACrBC,iBAAiB,IACjBC,sBAAsBR,EACtBS,mBAAmBR,EACnBS,iBAAiB,CACfC,SAAU,OACVC,YAAa,UACbC,SAAU,YAKZ,IAAIC,EAA+B,KAC/BC,GAA2B,EAC/B,MAAMC,EAAuBC,IAEvBH,GAAOI,aAAaJ,GACxBA,EAAQK,WAAW,KACZJ,IACDE,EAASG,QAAUlB,EAAcmB,SAIjCJ,EAASrB,OAAOc,EAAeC,WAAaJ,GAC9CF,IAEEY,EAASrB,OAAOc,EAAeC,WAAaL,GAC9CE,KAPAC,MASD,GAd+Ba,IAAOP,GAA2B,GAmBtE7B,EAASqC,aAAaC,QAAQC,IAC5BC,UAEE,MAAMC,EAAQC,aAAaC,QAAQzB,GAInC,OAHIuB,GAASG,EAAOvC,SAClBuC,EAAOvC,QAAQwC,IAAI3B,EAAsBuB,GAEpCG,GAERE,IACCC,QAAQC,IAAI,WAAYF,GACxBhB,EAAoBgB,GACbG,QAAQC,OAAOJ,KAM1B9C,EAASqC,aAAaN,SAASQ,IAC5BR,IACC,GAAqC,SAAjCA,EAASa,OAAOO,aAClB,OAAOpB,EAEP,GAAQA,EAASrB,OAAOc,EAAeC,YAChCL,EACH,OAAOW,EAASrB,OAAOc,EAAeG,UACxC,CACE,MAAMS,EAA4BN,EAAoBC,GACtD,KAAM,IACDA,EACHK,4BACAgB,IAAKpD,EAASqD,SACf,GAIRP,IACC,MAAMV,EAA4BN,EAAoBgB,GACtD,KAAM,IAAKA,EAAOV,4BAA2BgB,IAAKpD,EAASqD"}
|
package/build/glowpod.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("axios");const s=()=>{},t=()=>{},a=()=>{};var r;!function(e){e[e.success=200]="success"}(r||(r={}));exports.GlowPod=class{constructor(s){this.getInstance=()=>this.instance,this.Get=e=>this.instance({method:"GET",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Put=e=>this.instance({method:"PUT",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Delete=e=>this.instance({method:"DELETE",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Post=e=>this.instance({method:"POST",url:e.url,data:e.params,headers:{...e.headers},...e.others}),this.instance=e.create(s)}},exports.setupInterceptors=({instance:e,authTokenStorageName:o="token",authFailedCaller:n=s,networkSuccessCode:c=200,authFailedCode:i=401,networkFailedCaller:d=t,serverKillCaller:h=a,responseStruct:u={codeName:"code",messageName:"message",dataName:"data"}})=>{let l=null,m=!0;const p=e=>(l&&clearTimeout(l),l=setTimeout(()=>{m&&(e.status==r.success?(e.data?.[u.codeName]==i&&n(),e.data?.[u.codeName]!=c&&d()):h())},0),()=>m=!1);e.interceptors.request.use(async e=>{const s=localStorage.getItem(o);return s&&e.headers&&e.headers.set(o,s),e},e=>(console.log("请求错误拦截器:",e),p(e),Promise.reject(e))),e.interceptors.response.use(s=>{if("blob"===s.config.responseType)return s;if(s.data?.[u.codeName]===c)return s.data?.[u.dataName];{const t=p(s);throw{...s,hiddenDefaultErrorHandler:t,uri:e.getUri()}}},s=>{const t=p(s);throw{...s,hiddenDefaultErrorHandler:t,uri:e.getUri()}})};
|
|
2
|
+
//# sourceMappingURL=glowpod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glowpod.js","sources":["../../interceptors/interceptors.tsx","../../core/core.ts"],"sourcesContent":["import { AxiosInstance, AxiosError } from \"axios\";\nimport { InterceptorsOptions } from \"../model/model\";\n\n/**\n * 设置拦截器\n * @param instance axios实例\n * @param @InterceptorsOptions\n * @returns void\n */\n\nconst _authFailedCaller = () => {};\n\nconst _networkFailedCaller = () => {};\n\nconst _serverKillCaller = () => {};\n\nenum NetworkStatus {\n success = 200,\n}\n\nexport const setupInterceptors = ({\n instance,\n authTokenStorageName = \"token\",\n authFailedCaller = _authFailedCaller,\n networkSuccessCode = 200,\n authFailedCode = 401,\n networkFailedCaller = _networkFailedCaller,\n serverKillCaller = _serverKillCaller,\n responseStruct = {\n codeName: \"code\",\n messageName: \"message\",\n dataName: \"data\",\n },\n}: InterceptorsOptions & {\n instance: AxiosInstance;\n}) => {\n let timer: NodeJS.Timeout | null = null;\n let isDefaultOpenErrorHandle = true;\n const defaultErrorHandler = (response: any) => {\n const hiddenDefaultErrorHandler = () => (isDefaultOpenErrorHandle = false);\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n if (!isDefaultOpenErrorHandle) return;\n if (response.status != NetworkStatus.success) {\n serverKillCaller();\n return;\n }\n if (response.data?.[responseStruct.codeName] == authFailedCode) {\n authFailedCaller();\n }\n if (response.data?.[responseStruct.codeName] != networkSuccessCode) {\n networkFailedCaller();\n }\n }, 0);\n return hiddenDefaultErrorHandler;\n };\n\n // 请求拦截器\n instance.interceptors.request.use(\n async (config) => {\n // 从存储中获取token\n const token = localStorage.getItem(authTokenStorageName as string);\n if (token && config.headers) {\n config.headers.set(authTokenStorageName, token);\n }\n return config;\n },\n (error: AxiosError) => {\n console.log(\"请求错误拦截器:\", error);\n defaultErrorHandler(error);\n return Promise.reject(error);\n }\n );\n\n // 响应拦截器\n\n instance.interceptors.response.use(\n (response) => {\n if (response.config.responseType === \"blob\") {\n return response;\n } else {\n switch (response.data?.[responseStruct.codeName]) {\n case networkSuccessCode:\n return response.data?.[responseStruct.dataName];\n default:\n const hiddenDefaultErrorHandler = defaultErrorHandler(response);\n throw {\n ...response,\n hiddenDefaultErrorHandler,\n uri: instance.getUri(),\n };\n }\n }\n },\n (error: AxiosError) => {\n const hiddenDefaultErrorHandler = defaultErrorHandler(error);\n throw { ...error, hiddenDefaultErrorHandler, uri: instance.getUri() };\n }\n );\n};\n","import type { Options } from \"../model/model\";\nimport axios, { AxiosInstance, CreateAxiosDefaults } from \"axios\";\nexport class Core {\n protected instance: AxiosInstance;\n\n constructor(options: CreateAxiosDefaults) {\n this.instance = axios.create(options);\n }\n\n public getInstance = () => {\n return this.instance;\n };\n public Get = <T>(options: Options): T =>\n this.instance({\n method: \"GET\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Put = <T>(options: Options): T =>\n this.instance({\n method: \"PUT\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Delete = <T>(options: Options): T =>\n this.instance({\n method: \"DELETE\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Post = <T>(options: Options): T =>\n this.instance({\n method: \"POST\",\n url: options.url,\n data: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n}\n"],"names":["_authFailedCaller","_networkFailedCaller","_serverKillCaller","NetworkStatus","constructor","options","this","getInstance","instance","Get","method","url","params","headers","others","Put","Delete","Post","data","axios","create","setupInterceptors","authTokenStorageName","authFailedCaller","networkSuccessCode","authFailedCode","networkFailedCaller","serverKillCaller","responseStruct","codeName","messageName","dataName","timer","isDefaultOpenErrorHandle","defaultErrorHandler","response","clearTimeout","setTimeout","status","success","hiddenDefaultErrorHandler","interceptors","request","use","async","token","localStorage","getItem","config","set","error","console","log","Promise","reject","responseType","uri","getUri"],"mappings":"oCAUA,MAAMA,EAAoBA,OAEpBC,EAAuBA,OAEvBC,EAAoBA,OAE1B,IAAKC,GAAL,SAAKA,GACHA,EAAAA,EAAA,QAAA,KAAA,SACD,CAFD,CAAKA,IAAAA,EAAa,CAAA,0BCXhBC,WAAAA,CAAYC,GAILC,KAAAC,YAAc,IACZD,KAAKE,SAEPF,KAAAG,IAAUJ,GACfC,KAAKE,SAAS,CACZE,OAAQ,MACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAS,IAAUV,GACfC,KAAKE,SAAS,CACZE,OAAQ,MACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAU,OAAaX,GAClBC,KAAKE,SAAS,CACZE,OAAQ,SACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAW,KAAWZ,GAChBC,KAAKE,SAAS,CACZE,OAAQ,OACRC,IAAKN,EAAQM,IACbO,KAAMb,EAAQO,OACdC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SApCbR,KAAKE,SAAWW,EAAMC,OAAOf,EAC/B,6BDa+BgB,EAC/Bb,WACAc,uBAAuB,QACvBC,mBAAmBvB,EACnBwB,qBAAqB,IACrBC,iBAAiB,IACjBC,sBAAsBzB,EACtB0B,mBAAmBzB,EACnB0B,iBAAiB,CACfC,SAAU,OACVC,YAAa,UACbC,SAAU,YAKZ,IAAIC,EAA+B,KAC/BC,GAA2B,EAC/B,MAAMC,EAAuBC,IAEvBH,GAAOI,aAAaJ,GACxBA,EAAQK,WAAW,KACZJ,IACDE,EAASG,QAAUnC,EAAcoC,SAIjCJ,EAASjB,OAAOU,EAAeC,WAAaJ,GAC9CF,IAEEY,EAASjB,OAAOU,EAAeC,WAAaL,GAC9CE,KAPAC,MASD,GAd+Ba,IAAOP,GAA2B,GAmBtEzB,EAASiC,aAAaC,QAAQC,IAC5BC,UAEE,MAAMC,EAAQC,aAAaC,QAAQzB,GAInC,OAHIuB,GAASG,EAAOnC,SAClBmC,EAAOnC,QAAQoC,IAAI3B,EAAsBuB,GAEpCG,GAERE,IACCC,QAAQC,IAAI,WAAYF,GACxBhB,EAAoBgB,GACbG,QAAQC,OAAOJ,KAM1B1C,EAASiC,aAAaN,SAASQ,IAC5BR,IACC,GAAqC,SAAjCA,EAASa,OAAOO,aAClB,OAAOpB,EAEP,GAAQA,EAASjB,OAAOU,EAAeC,YAChCL,EACH,OAAOW,EAASjB,OAAOU,EAAeG,UACxC,CACE,MAAMS,EAA4BN,EAAoBC,GACtD,KAAM,IACDA,EACHK,4BACAgB,IAAKhD,EAASiD,SACf,GAIRP,IACC,MAAMV,EAA4BN,EAAoBgB,GACtD,KAAM,IAAKA,EAAOV,4BAA2BgB,IAAKhD,EAASiD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("axios")):"function"==typeof define&&define.amd?define(["exports","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).GlowPod={},e.axios)}(this,function(e,t){"use strict";const s=()=>{},a=()=>{},r=()=>{};var o;!function(e){e[e.success=200]="success"}(o||(o={}));e.GlowPod=class{constructor(e){this.getInstance=()=>this.instance,this.Get=e=>this.instance({method:"GET",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Put=e=>this.instance({method:"PUT",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Delete=e=>this.instance({method:"DELETE",url:e.url,params:e.params,headers:{...e.headers},...e.others}),this.Post=e=>this.instance({method:"POST",url:e.url,data:e.params,headers:{...e.headers},...e.others}),this.instance=t.create(e)}},e.setupInterceptors=({instance:e,authTokenStorageName:t="token",authFailedCaller:n=s,networkSuccessCode:i=200,authFailedCode:d=401,networkFailedCaller:c=a,serverKillCaller:l=r,responseStruct:u={codeName:"code",messageName:"message",dataName:"data"}})=>{let h=null,m=!0;const p=e=>(h&&clearTimeout(h),h=setTimeout(()=>{m&&(e.status==o.success?(e.data?.[u.codeName]==d&&n(),e.data?.[u.codeName]!=i&&c()):l())},0),()=>m=!1);e.interceptors.request.use(async e=>{const s=localStorage.getItem(t);return s&&e.headers&&e.headers.set(t,s),e},e=>(console.log("请求错误拦截器:",e),p(e),Promise.reject(e))),e.interceptors.response.use(t=>{if("blob"===t.config.responseType)return t;if(t.data?.[u.codeName]===i)return t.data?.[u.dataName];{const s=p(t);throw{...t,hiddenDefaultErrorHandler:s,uri:e.getUri()}}},t=>{const s=p(t);throw{...t,hiddenDefaultErrorHandler:s,uri:e.getUri()}})}});
|
|
2
|
+
//# sourceMappingURL=glowpod.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glowpod.umd.js","sources":["../../interceptors/interceptors.tsx","../../core/core.ts"],"sourcesContent":["import { AxiosInstance, AxiosError } from \"axios\";\nimport { InterceptorsOptions } from \"../model/model\";\n\n/**\n * 设置拦截器\n * @param instance axios实例\n * @param @InterceptorsOptions\n * @returns void\n */\n\nconst _authFailedCaller = () => {};\n\nconst _networkFailedCaller = () => {};\n\nconst _serverKillCaller = () => {};\n\nenum NetworkStatus {\n success = 200,\n}\n\nexport const setupInterceptors = ({\n instance,\n authTokenStorageName = \"token\",\n authFailedCaller = _authFailedCaller,\n networkSuccessCode = 200,\n authFailedCode = 401,\n networkFailedCaller = _networkFailedCaller,\n serverKillCaller = _serverKillCaller,\n responseStruct = {\n codeName: \"code\",\n messageName: \"message\",\n dataName: \"data\",\n },\n}: InterceptorsOptions & {\n instance: AxiosInstance;\n}) => {\n let timer: NodeJS.Timeout | null = null;\n let isDefaultOpenErrorHandle = true;\n const defaultErrorHandler = (response: any) => {\n const hiddenDefaultErrorHandler = () => (isDefaultOpenErrorHandle = false);\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n if (!isDefaultOpenErrorHandle) return;\n if (response.status != NetworkStatus.success) {\n serverKillCaller();\n return;\n }\n if (response.data?.[responseStruct.codeName] == authFailedCode) {\n authFailedCaller();\n }\n if (response.data?.[responseStruct.codeName] != networkSuccessCode) {\n networkFailedCaller();\n }\n }, 0);\n return hiddenDefaultErrorHandler;\n };\n\n // 请求拦截器\n instance.interceptors.request.use(\n async (config) => {\n // 从存储中获取token\n const token = localStorage.getItem(authTokenStorageName as string);\n if (token && config.headers) {\n config.headers.set(authTokenStorageName, token);\n }\n return config;\n },\n (error: AxiosError) => {\n console.log(\"请求错误拦截器:\", error);\n defaultErrorHandler(error);\n return Promise.reject(error);\n }\n );\n\n // 响应拦截器\n\n instance.interceptors.response.use(\n (response) => {\n if (response.config.responseType === \"blob\") {\n return response;\n } else {\n switch (response.data?.[responseStruct.codeName]) {\n case networkSuccessCode:\n return response.data?.[responseStruct.dataName];\n default:\n const hiddenDefaultErrorHandler = defaultErrorHandler(response);\n throw {\n ...response,\n hiddenDefaultErrorHandler,\n uri: instance.getUri(),\n };\n }\n }\n },\n (error: AxiosError) => {\n const hiddenDefaultErrorHandler = defaultErrorHandler(error);\n throw { ...error, hiddenDefaultErrorHandler, uri: instance.getUri() };\n }\n );\n};\n","import type { Options } from \"../model/model\";\nimport axios, { AxiosInstance, CreateAxiosDefaults } from \"axios\";\nexport class Core {\n protected instance: AxiosInstance;\n\n constructor(options: CreateAxiosDefaults) {\n this.instance = axios.create(options);\n }\n\n public getInstance = () => {\n return this.instance;\n };\n public Get = <T>(options: Options): T =>\n this.instance({\n method: \"GET\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Put = <T>(options: Options): T =>\n this.instance({\n method: \"PUT\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Delete = <T>(options: Options): T =>\n this.instance({\n method: \"DELETE\",\n url: options.url,\n params: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n public Post = <T>(options: Options): T =>\n this.instance({\n method: \"POST\",\n url: options.url,\n data: options.params,\n headers: { ...options.headers },\n ...options.others,\n }) as unknown as T;\n}\n"],"names":["_authFailedCaller","_networkFailedCaller","_serverKillCaller","NetworkStatus","constructor","options","this","getInstance","instance","Get","method","url","params","headers","others","Put","Delete","Post","data","axios","create","setupInterceptors","authTokenStorageName","authFailedCaller","networkSuccessCode","authFailedCode","networkFailedCaller","serverKillCaller","responseStruct","codeName","messageName","dataName","timer","isDefaultOpenErrorHandle","defaultErrorHandler","response","clearTimeout","setTimeout","status","success","hiddenDefaultErrorHandler","interceptors","request","use","async","token","localStorage","getItem","config","set","error","console","log","Promise","reject","responseType","uri","getUri"],"mappings":"iRAUA,MAAMA,EAAoBA,OAEpBC,EAAuBA,OAEvBC,EAAoBA,OAE1B,IAAKC,GAAL,SAAKA,GACHA,EAAAA,EAAA,QAAA,KAAA,SACD,CAFD,CAAKA,IAAAA,EAAa,CAAA,oBCXhBC,WAAAA,CAAYC,GAILC,KAAAC,YAAc,IACZD,KAAKE,SAEPF,KAAAG,IAAUJ,GACfC,KAAKE,SAAS,CACZE,OAAQ,MACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAS,IAAUV,GACfC,KAAKE,SAAS,CACZE,OAAQ,MACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAU,OAAaX,GAClBC,KAAKE,SAAS,CACZE,OAAQ,SACRC,IAAKN,EAAQM,IACbC,OAAQP,EAAQO,OAChBC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SAERR,KAAAW,KAAWZ,GAChBC,KAAKE,SAAS,CACZE,OAAQ,OACRC,IAAKN,EAAQM,IACbO,KAAMb,EAAQO,OACdC,QAAS,IAAKR,EAAQQ,YACnBR,EAAQS,SApCbR,KAAKE,SAAWW,EAAMC,OAAOf,EAC/B,uBDa+BgB,EAC/Bb,WACAc,uBAAuB,QACvBC,mBAAmBvB,EACnBwB,qBAAqB,IACrBC,iBAAiB,IACjBC,sBAAsBzB,EACtB0B,mBAAmBzB,EACnB0B,iBAAiB,CACfC,SAAU,OACVC,YAAa,UACbC,SAAU,YAKZ,IAAIC,EAA+B,KAC/BC,GAA2B,EAC/B,MAAMC,EAAuBC,IAEvBH,GAAOI,aAAaJ,GACxBA,EAAQK,WAAW,KACZJ,IACDE,EAASG,QAAUnC,EAAcoC,SAIjCJ,EAASjB,OAAOU,EAAeC,WAAaJ,GAC9CF,IAEEY,EAASjB,OAAOU,EAAeC,WAAaL,GAC9CE,KAPAC,MASD,GAd+Ba,IAAOP,GAA2B,GAmBtEzB,EAASiC,aAAaC,QAAQC,IAC5BC,UAEE,MAAMC,EAAQC,aAAaC,QAAQzB,GAInC,OAHIuB,GAASG,EAAOnC,SAClBmC,EAAOnC,QAAQoC,IAAI3B,EAAsBuB,GAEpCG,GAERE,IACCC,QAAQC,IAAI,WAAYF,GACxBhB,EAAoBgB,GACbG,QAAQC,OAAOJ,KAM1B1C,EAASiC,aAAaN,SAASQ,IAC5BR,IACC,GAAqC,SAAjCA,EAASa,OAAOO,aAClB,OAAOpB,EAEP,GAAQA,EAASjB,OAAOU,EAAeC,YAChCL,EACH,OAAOW,EAASjB,OAAOU,EAAeG,UACxC,CACE,MAAMS,EAA4BN,EAAoBC,GACtD,KAAM,IACDA,EACHK,4BACAgB,IAAKhD,EAASiD,SACf,GAIRP,IACC,MAAMV,EAA4BN,EAAoBgB,GACtD,KAAM,IAAKA,EAAOV,4BAA2BgB,IAAKhD,EAASiD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AxiosInstance } from "axios";
|
|
2
|
+
import { InterceptorsOptions } from "../model/model";
|
|
3
|
+
export declare const setupInterceptors: ({ instance, authTokenStorageName, authFailedCaller, networkSuccessCode, authFailedCode, networkFailedCaller, serverKillCaller, responseStruct, }: InterceptorsOptions & {
|
|
4
|
+
instance: AxiosInstance;
|
|
5
|
+
}) => void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AxiosError } from "axios";
|
|
2
|
+
export interface Options {
|
|
3
|
+
url: string;
|
|
4
|
+
headers?: {};
|
|
5
|
+
params?: {} | null;
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
export interface Response<T> {
|
|
9
|
+
code: number;
|
|
10
|
+
message: string;
|
|
11
|
+
data: T;
|
|
12
|
+
}
|
|
13
|
+
export interface ResponseError<T = unknown, D = any> extends AxiosError<T, D> {
|
|
14
|
+
hiddenDefaultErrorHandler(): void;
|
|
15
|
+
}
|
|
16
|
+
export type InterceptorsOptions = {
|
|
17
|
+
authTokenStorageName?: string;
|
|
18
|
+
networkSuccessCode?: number;
|
|
19
|
+
authFailedCode?: number;
|
|
20
|
+
authFailedCaller?: Function;
|
|
21
|
+
networkFailedCaller?: Function;
|
|
22
|
+
serverKillCaller?: Function;
|
|
23
|
+
responseStruct?: {
|
|
24
|
+
codeName: string;
|
|
25
|
+
messageName: string;
|
|
26
|
+
dataName: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
package/package.json
CHANGED
|
@@ -1,20 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@andbridge/glowpod",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "glowpod.
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "A axios-based HTTP client library",
|
|
5
|
+
"main": "build/glowpod.js",
|
|
6
|
+
"module": "build/glowpod.esm.js",
|
|
7
|
+
"types": "build/glowpod.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"build"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./build/glowpod.esm.js",
|
|
14
|
+
"require": "./build/glowpod.js",
|
|
15
|
+
"types": "./build/glowpod.d.ts"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
6
18
|
"scripts": {
|
|
7
|
-
"
|
|
19
|
+
"build": "rollup -c",
|
|
20
|
+
"prepublishOnly": "npm run build"
|
|
8
21
|
},
|
|
9
|
-
"keywords": [
|
|
22
|
+
"keywords": [
|
|
23
|
+
"axios",
|
|
24
|
+
"http",
|
|
25
|
+
"client"
|
|
26
|
+
],
|
|
10
27
|
"author": "",
|
|
11
28
|
"license": "ISC",
|
|
12
29
|
"packageManager": "pnpm@10.15.0",
|
|
13
30
|
"devDependencies": {
|
|
31
|
+
"@rollup/plugin-babel": "^6.1.0",
|
|
32
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
33
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
34
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
35
|
+
"rollup": "^4.53.2",
|
|
36
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
37
|
+
"tslib": "^2.8.1",
|
|
14
38
|
"typescript": "~5.9.3"
|
|
15
39
|
},
|
|
16
40
|
"dependencies": {
|
|
17
|
-
"axios": "^1.13.2"
|
|
18
|
-
|
|
19
|
-
}
|
|
41
|
+
"axios": "^1.13.2"
|
|
42
|
+
},
|
|
43
|
+
"repository": {}
|
|
20
44
|
}
|
package/glowpod.ts
DELETED
package/src/config/config.ts
DELETED
package/src/core/core.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { Options, Response } from "../model/model";
|
|
2
|
-
import axios, { AxiosInstance, CreateAxiosDefaults } from "axios";
|
|
3
|
-
export default class Core {
|
|
4
|
-
protected instance: AxiosInstance;
|
|
5
|
-
|
|
6
|
-
constructor(options: CreateAxiosDefaults) {
|
|
7
|
-
this.instance = axios.create(options);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
public getInstance = () => {
|
|
11
|
-
return this.instance;
|
|
12
|
-
};
|
|
13
|
-
public Get = <T>(options: Options): T =>
|
|
14
|
-
this.instance({
|
|
15
|
-
method: "GET",
|
|
16
|
-
url: options.url,
|
|
17
|
-
params: options.params,
|
|
18
|
-
headers: { ...options.headers },
|
|
19
|
-
...options.others,
|
|
20
|
-
}) as unknown as T;
|
|
21
|
-
public Put = <T>(options: Options): T =>
|
|
22
|
-
this.instance({
|
|
23
|
-
method: "PUT",
|
|
24
|
-
url: options.url,
|
|
25
|
-
params: options.params,
|
|
26
|
-
headers: { ...options.headers },
|
|
27
|
-
...options.others,
|
|
28
|
-
}) as unknown as T;
|
|
29
|
-
public Delete = <T>(options: Options): T =>
|
|
30
|
-
this.instance({
|
|
31
|
-
method: "DELETE",
|
|
32
|
-
url: options.url,
|
|
33
|
-
params: options.params,
|
|
34
|
-
headers: { ...options.headers },
|
|
35
|
-
...options.others,
|
|
36
|
-
}) as unknown as T;
|
|
37
|
-
public Post = <T>(options: Options): T =>
|
|
38
|
-
this.instance({
|
|
39
|
-
method: "POST",
|
|
40
|
-
url: options.url,
|
|
41
|
-
data: options.params,
|
|
42
|
-
headers: { ...options.headers },
|
|
43
|
-
...options.others,
|
|
44
|
-
}) as unknown as T;
|
|
45
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AxiosInstance,
|
|
3
|
-
AxiosResponse,
|
|
4
|
-
AxiosError,
|
|
5
|
-
InternalAxiosRequestConfig,
|
|
6
|
-
} from "axios";
|
|
7
|
-
import { InterceptorsOptions, Response } from "../model/model";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* 设置拦截器
|
|
11
|
-
* @param instance axios实例
|
|
12
|
-
* @param @InterceptorsOptions
|
|
13
|
-
* @returns void
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
const _authFailedCaller = () => {};
|
|
17
|
-
|
|
18
|
-
const _networkFailedCaller = () => {};
|
|
19
|
-
|
|
20
|
-
const _serverKillCaller = () => {};
|
|
21
|
-
|
|
22
|
-
enum NetworkStatus {
|
|
23
|
-
success = 200,
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const setupInterceptors = ({
|
|
27
|
-
instance,
|
|
28
|
-
authTokenStorageName = "token",
|
|
29
|
-
authFailedCaller = _authFailedCaller,
|
|
30
|
-
networkSuccessCode = 200,
|
|
31
|
-
authFailedCode = 401,
|
|
32
|
-
networkFailedCaller = _networkFailedCaller,
|
|
33
|
-
serverKillCaller = _serverKillCaller,
|
|
34
|
-
responseStruct = {
|
|
35
|
-
codeName: "code",
|
|
36
|
-
messageName: "message",
|
|
37
|
-
dataName: "data",
|
|
38
|
-
},
|
|
39
|
-
}: InterceptorsOptions & {
|
|
40
|
-
instance: AxiosInstance;
|
|
41
|
-
}) => {
|
|
42
|
-
let timer: NodeJS.Timeout | null = null;
|
|
43
|
-
let isDefaultOpenErrorHandle = true;
|
|
44
|
-
const defaultErrorHandler = (response: any) => {
|
|
45
|
-
const hiddenDefaultErrorHandler = () => (isDefaultOpenErrorHandle = false);
|
|
46
|
-
if (timer) clearTimeout(timer);
|
|
47
|
-
timer = setTimeout(() => {
|
|
48
|
-
if (!isDefaultOpenErrorHandle) return;
|
|
49
|
-
if (response.status != NetworkStatus.success) {
|
|
50
|
-
serverKillCaller();
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (response.data?.[responseStruct.codeName] == authFailedCode) {
|
|
54
|
-
authFailedCaller();
|
|
55
|
-
}
|
|
56
|
-
if (response.data?.[responseStruct.codeName] != networkSuccessCode) {
|
|
57
|
-
networkFailedCaller();
|
|
58
|
-
}
|
|
59
|
-
}, 0);
|
|
60
|
-
return hiddenDefaultErrorHandler;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// 请求拦截器
|
|
64
|
-
instance.interceptors.request.use(
|
|
65
|
-
async (config) => {
|
|
66
|
-
// 从存储中获取token
|
|
67
|
-
const token = localStorage.getItem(authTokenStorageName as string);
|
|
68
|
-
if (token && config.headers) {
|
|
69
|
-
config.headers.set(authTokenStorageName, token);
|
|
70
|
-
}
|
|
71
|
-
return config;
|
|
72
|
-
},
|
|
73
|
-
(error: AxiosError) => {
|
|
74
|
-
console.log("请求错误拦截器:", error);
|
|
75
|
-
defaultErrorHandler(error);
|
|
76
|
-
return Promise.reject(error);
|
|
77
|
-
}
|
|
78
|
-
);
|
|
79
|
-
|
|
80
|
-
// 响应拦截器
|
|
81
|
-
|
|
82
|
-
instance.interceptors.response.use(
|
|
83
|
-
(response) => {
|
|
84
|
-
if (response.config.responseType === "blob") {
|
|
85
|
-
return response;
|
|
86
|
-
} else {
|
|
87
|
-
switch (response.data?.[responseStruct.codeName]) {
|
|
88
|
-
case networkSuccessCode:
|
|
89
|
-
return response.data?.[responseStruct.dataName];
|
|
90
|
-
default:
|
|
91
|
-
const hiddenDefaultErrorHandler = defaultErrorHandler(response);
|
|
92
|
-
throw {
|
|
93
|
-
...response,
|
|
94
|
-
hiddenDefaultErrorHandler,
|
|
95
|
-
uri: instance.getUri(),
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
(error: AxiosError) => {
|
|
101
|
-
const hiddenDefaultErrorHandler = defaultErrorHandler(error);
|
|
102
|
-
throw { ...error, hiddenDefaultErrorHandler, uri: instance.getUri() };
|
|
103
|
-
}
|
|
104
|
-
);
|
|
105
|
-
};
|
package/src/model/model.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { AxiosError, AxiosResponse } from "axios";
|
|
2
|
-
|
|
3
|
-
export interface Options {
|
|
4
|
-
url: string;
|
|
5
|
-
headers?: {};
|
|
6
|
-
params?: {} | null;
|
|
7
|
-
[key: string]: any;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface Response<T> {
|
|
11
|
-
code: number;
|
|
12
|
-
message: string;
|
|
13
|
-
data: T;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface ResponseError<T = unknown, D = any> extends AxiosError<T, D> {
|
|
17
|
-
hiddenDefaultErrorHandler(): void;
|
|
18
|
-
}
|
|
19
|
-
export type InterceptorsOptions = {
|
|
20
|
-
authTokenStorageName?: string;
|
|
21
|
-
networkSuccessCode?: number;
|
|
22
|
-
authFailedCode?: number;
|
|
23
|
-
authFailedCaller?: Function;
|
|
24
|
-
networkFailedCaller?: Function;
|
|
25
|
-
serverKillCaller?: Function;
|
|
26
|
-
responseStruct?: {
|
|
27
|
-
codeName?: string;
|
|
28
|
-
messageName?: string;
|
|
29
|
-
dataName?: string;
|
|
30
|
-
};
|
|
31
|
-
};
|