@yeepay/client-utils 1.0.0-alpha-2 → 1.1.0
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/dist/client-utils.esm.js +1 -1
- package/dist/client-utils.min.js +1 -1
- package/lib/request.js +30 -12
- package/package.json +4 -3
- package/pnpm-lock.yaml +0 -1785
package/dist/client-utils.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import t from"axios";import e from"js-cookie";import
|
|
1
|
+
import t from"axios";import e from"js-cookie";import n from"apollo-boost";import r from"unfetch";function o(t){var e=(t=null==t?window.location.href:t).substring(t.lastIndexOf("?")+1),n={};return e.replace(/([^?&=]+)=([^?&=]*)/g,(function(t,e,r){var o=decodeURIComponent(e),i=decodeURIComponent(r);return i=String(i),n[o]=i,t})),n}var i="";function u(){return i||e.get("TOKEN")}function a(t){if(i=o(window.location.href)[t]){var n=i.indexOf("#");-1!==n&&(i=i.slice(0,n)),i="Bearer "+i,e.set("TOKEN",i);var r=new RegExp("("+t+"=[^&]+&?)");window.history.replaceState(null,null,window.location.href.replace(r,(function(t){return""})))}}function c(){return e.remove("TOKEN")}function s(t,e){return e?t===e:0===t||"0"===t||"000000"===t||200===t||!t}function l(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return{}},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return{}},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return{}},i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return{}},a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:function(){return{}},c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(t){return t},l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:function(t){return t},f=e.baseUrl,d=void 0===f?"/":f,p=e.timeout,v=void 0===p?12e5:p,h=e.headers,m=e.code,g=t.create({baseURL:d,timeout:v,headers:h,validateStatus:function(t){return t>=200&&t<300||401===t||403===t||400===t||500===t}});return g.interceptors.request.use((function(t){t.headers.Authorization=u(),t.headers["Content-Type"]="application/json";var e=t.method,n=t.url;return"get"===e&&(-1!==n.indexOf("?")?t.url="".concat(n,"&_t=").concat((new Date).getTime()):t.url="".concat(n,"?_t=").concat((new Date).getTime())),t}),(function(t){console.log(t),Promise.reject(t)})),g.interceptors.request.use(c,(function(t){console.log(t),Promise.reject(t)})),g.interceptors.response.use((function(t){return t.status&&401===t.status?o(t):t.status&&403===t.status?i(t):(!t.status||400!==t.status&&500!==t.status)&&s(t.data.code,m)?(n(t),t):(r(t),Promise.reject(t))}),(function(t){var e=0;try{e=t.response.status||t.response.data.status}catch(e){if(-1!==t.toString().indexOf("Error: timeout"))return Promise.reject(t)}return e?403===e?i(t):404===e?a(t):r(t.response):r(t.response),Promise.reject(t)})),g.interceptors.response.use(l,(function(t){})),g}function f(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function d(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return p(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var v=function(){function t(e){var o=this,i=e.gqlServer,u=e.requestForRest;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.gql={},this.inject=function(t,e){o.register(t);for(var n=function(){var e=d(i[r],2),n=e[0],u=e[1];if(!["definitions","kind","loc"].includes(n))if("query"===u.definitions[0].operation)"production"===process.env.NODE_ENV?o.gql[t][n]=function(e){return o.restfulReq("/".concat(t,"/").concat(n),e)}:o.gql[t][n]=function(t){return o.query(u,t)};else{if("mutation"!==u.definitions[0].operation)return"continue";"production"===process.env.NODE_ENV?o.gql[t][n]=function(e){return o.restfulReq("/".concat(t,"/").concat(n),e)}:o.gql[t][n]=function(t){return o.mutation(u,t)}}},r=0,i=Object.entries(e);r<i.length;r++)n()},this.gqlServer=i,this.request=u,this.apolloClient=new n({uri:i,fetch:r})}var e,o,i;return e=t,(o=[{key:"register",value:function(t){this.gql[t]||(this.gql[t]={})}},{key:"query",value:function(t,e){return this.apolloClient.query({query:t,variables:e||{}})}},{key:"mutation",value:function(t,e){return this.apolloClient.mutate({mutation:t,variables:e||{}})}},{key:"restfulReq",value:function(t,e){return this.request({url:t,method:"post",data:{variables:e}})}}])&&f(e.prototype,o),i&&f(e,i),t}();export{v as GraphQLClient,o as getQueryObject,u as getToken,c as removeToken,l as serviceFactory,a as setTokenFromUrl};
|
package/dist/client-utils.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("axios"),require("js-cookie"),require("apollo-boost"),require("unfetch")):"function"==typeof define&&define.amd?define(["exports","axios","js-cookie","apollo-boost","unfetch"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).YeepayClientUtils={},e.axios,e.Cookie,e.ApolloClient,e.fetch)}(this,(function(e,t,n,r,o){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=i(t),a=i(n),
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("axios"),require("js-cookie"),require("apollo-boost"),require("unfetch")):"function"==typeof define&&define.amd?define(["exports","axios","js-cookie","apollo-boost","unfetch"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).YeepayClientUtils={},e.axios,e.Cookie,e.ApolloClient,e.fetch)}(this,(function(e,t,n,r,o){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=i(t),a=i(n),s=i(r),c=i(o);function l(e){var t=(e=null==e?window.location.href:e).substring(e.lastIndexOf("?")+1),n={};return t.replace(/([^?&=]+)=([^?&=]*)/g,(function(e,t,r){var o=decodeURIComponent(t),i=decodeURIComponent(r);return i=String(i),n[o]=i,e})),n}var f="TOKEN",d="";function p(){return d||a.default.get(f)}function h(e,t){return t?e===t:0===e||"0"===e||"000000"===e||200===e||!e}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var m=function(){function e(t){var n=this,r=t.gqlServer,o=t.requestForRest;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.gql={},this.inject=function(e,t){n.register(e);for(var r=function(){var t=y(i[o],2),r=t[0],u=t[1];if(!["definitions","kind","loc"].includes(r))if("query"===u.definitions[0].operation)"production"===process.env.NODE_ENV?n.gql[e][r]=function(t){return n.restfulReq("/".concat(e,"/").concat(r),t)}:n.gql[e][r]=function(e){return n.query(u,e)};else{if("mutation"!==u.definitions[0].operation)return"continue";"production"===process.env.NODE_ENV?n.gql[e][r]=function(t){return n.restfulReq("/".concat(e,"/").concat(r),t)}:n.gql[e][r]=function(e){return n.mutation(u,e)}}},o=0,i=Object.entries(t);o<i.length;o++)r()},this.gqlServer=r,this.request=o,this.apolloClient=new s.default({uri:r,fetch:c.default})}var t,n,r;return t=e,(n=[{key:"register",value:function(e){this.gql[e]||(this.gql[e]={})}},{key:"query",value:function(e,t){return this.apolloClient.query({query:e,variables:t||{}})}},{key:"mutation",value:function(e,t){return this.apolloClient.mutate({mutation:e,variables:t||{}})}},{key:"restfulReq",value:function(e,t){return this.request({url:e,method:"post",data:{variables:t}})}}])&&v(t.prototype,n),r&&v(t,r),e}();e.GraphQLClient=m,e.getQueryObject=l,e.getToken=p,e.removeToken=function(){return a.default.remove(f)},e.serviceFactory=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return{}},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return{}},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return{}},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return{}},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:function(){return{}},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(e){return e},s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:function(e){return e},c=e.baseUrl,l=void 0===c?"/":c,f=e.timeout,d=void 0===f?12e5:f,v=e.headers,y=e.code,g=u.default.create({baseURL:l,timeout:d,headers:v,validateStatus:function(e){return e>=200&&e<300||401===e||403===e||400===e||500===e}});return g.interceptors.request.use((function(e){e.headers.Authorization=p(),e.headers["Content-Type"]="application/json";var t=e.method,n=e.url;return"get"===t&&(-1!==n.indexOf("?")?e.url="".concat(n,"&_t=").concat((new Date).getTime()):e.url="".concat(n,"?_t=").concat((new Date).getTime())),e}),(function(e){console.log(e),Promise.reject(e)})),g.interceptors.request.use(a,(function(e){console.log(e),Promise.reject(e)})),g.interceptors.response.use((function(e){return e.status&&401===e.status?r(e):e.status&&403===e.status?o(e):(!e.status||400!==e.status&&500!==e.status)&&h(e.data.code,y)?(t(e),e):(n(e),Promise.reject(e))}),(function(e){var t=0;try{t=e.response.status||e.response.data.status}catch(t){if(-1!==e.toString().indexOf("Error: timeout"))return Promise.reject(e)}return t?403===t?o(e):404===t?i(e):n(e.response):n(e.response),Promise.reject(e)})),g.interceptors.response.use(s,(function(e){})),g},e.setTokenFromUrl=function(e){if(d=l(window.location.href)[e]){var t=d.indexOf("#");-1!==t&&(d=d.slice(0,t)),d="Bearer "+d,a.default.set(f,d);var n=new RegExp("("+e+"=[^&]+&?)");window.history.replaceState(null,null,window.location.href.replace(n,(function(e){return""})))}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/lib/request.js
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import axios from 'axios'
|
|
2
2
|
import { getToken } from './token'
|
|
3
3
|
|
|
4
|
+
function verifySuccessCode(code, customCode) {
|
|
5
|
+
if (customCode) {
|
|
6
|
+
return code === customCode
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
return code === 0 ||
|
|
10
|
+
code === '0' ||
|
|
11
|
+
code === '000000' ||
|
|
12
|
+
code === 200 ||
|
|
13
|
+
!code
|
|
14
|
+
}
|
|
15
|
+
|
|
4
16
|
/**
|
|
5
17
|
* method service factory.
|
|
6
18
|
* @param {Object} options baseUrl/timeout/headers<object>.
|
|
@@ -17,12 +29,15 @@ export function serviceFactory(
|
|
|
17
29
|
failCallback = () => ({}),
|
|
18
30
|
unauthorizedCallback = () => ({}),
|
|
19
31
|
forbiddenCallback = () => ({}),
|
|
20
|
-
notfoundCallback = () => ({})
|
|
32
|
+
notfoundCallback = () => ({}),
|
|
33
|
+
requestInterceptor = (c) => (c),
|
|
34
|
+
responseInterceptor = (r) => (r)
|
|
21
35
|
) {
|
|
22
36
|
const {
|
|
23
|
-
baseUrl = '/
|
|
37
|
+
baseUrl = '/',
|
|
24
38
|
timeout = 1200000, // 默认 2 分钟
|
|
25
|
-
headers
|
|
39
|
+
headers,
|
|
40
|
+
code,
|
|
26
41
|
} = options
|
|
27
42
|
|
|
28
43
|
// 创建axios实例
|
|
@@ -64,6 +79,13 @@ export function serviceFactory(
|
|
|
64
79
|
}
|
|
65
80
|
)
|
|
66
81
|
|
|
82
|
+
service.interceptors.request.use(requestInterceptor,
|
|
83
|
+
(error) => {
|
|
84
|
+
// Do something with request error
|
|
85
|
+
console.log(error) // for debug
|
|
86
|
+
Promise.reject(error)
|
|
87
|
+
})
|
|
88
|
+
|
|
67
89
|
// response 拦截器
|
|
68
90
|
service.interceptors.response.use(
|
|
69
91
|
(response) => {
|
|
@@ -84,20 +106,13 @@ export function serviceFactory(
|
|
|
84
106
|
return Promise.reject(response)
|
|
85
107
|
}
|
|
86
108
|
// !response.data.code, code为假 那么可能为文件流
|
|
87
|
-
if (
|
|
88
|
-
response.data.code === 0 ||
|
|
89
|
-
response.data.code === '0' ||
|
|
90
|
-
response.data.code === '000000' ||
|
|
91
|
-
response.data.code === 200 ||
|
|
92
|
-
!response.data.code
|
|
93
|
-
) {
|
|
109
|
+
if (verifySuccessCode(response.data.code, code)) {
|
|
94
110
|
successCallback(response)
|
|
111
|
+
return response
|
|
95
112
|
} else {
|
|
96
113
|
failCallback(response)
|
|
97
114
|
return Promise.reject(response)
|
|
98
115
|
}
|
|
99
|
-
|
|
100
|
-
return response
|
|
101
116
|
},
|
|
102
117
|
(error) => {
|
|
103
118
|
let status = 0
|
|
@@ -123,5 +138,8 @@ export function serviceFactory(
|
|
|
123
138
|
return Promise.reject(error)
|
|
124
139
|
}
|
|
125
140
|
)
|
|
141
|
+
|
|
142
|
+
service.interceptors.response.use(responseInterceptor,
|
|
143
|
+
(error) => { })
|
|
126
144
|
return service
|
|
127
145
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yeepay/client-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "shared utilities for yeepay client packages",
|
|
5
5
|
"main": "dist/client-utils.min.js",
|
|
6
6
|
"module": "dist/client-utils.esm.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"keywords": [
|
|
18
18
|
"yeepay",
|
|
19
19
|
"utils",
|
|
20
|
-
"client-
|
|
20
|
+
"client-utils"
|
|
21
21
|
],
|
|
22
22
|
"author": "Angus Yang",
|
|
23
23
|
"license": "ISC",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"homepage": "https://github.com/YeePay-UED/client-utils#readme",
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@babel/core": "^7.1.2",
|
|
30
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
30
31
|
"@babel/preset-env": "^7.1.0",
|
|
31
32
|
"@rollup/plugin-babel": "^5.2.1",
|
|
32
33
|
"@rollup/plugin-commonjs": "^15.1.0",
|
|
@@ -37,7 +38,7 @@
|
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
40
|
"apollo-boost": "^0.4.9",
|
|
40
|
-
"axios": "^0.
|
|
41
|
+
"axios": "^0.27.2",
|
|
41
42
|
"graphql": "^15.6.0",
|
|
42
43
|
"js-cookie": "^2.2.1",
|
|
43
44
|
"unfetch": "^4.2.0"
|