@kcuf/fetcher-interceptor-login 0.1.1 → 0.1.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/README.md CHANGED
@@ -16,10 +16,14 @@ import interceptLogin from '@kcuf/fetcher-interceptor-login';
16
16
  import needLogin from './need-login';
17
17
  import doLogin from './do-login';
18
18
 
19
- interceptLogin(fetcher, needLogin, doLogin);
19
+ interceptLogin(fetcher, {
20
+ needLogin,
21
+ doLogin,
22
+ headerKeys
23
+ });
20
24
  ```
21
25
 
22
- 由于业务的特殊性,你需要自定义 `needLogin` `doLogin`。
26
+ 由于业务的特殊性,你需要自定义 `needLogin`、`doLogin` 以及可选的 `headerKeys`。
23
27
 
24
28
  ### needLogin
25
29
 
@@ -40,6 +44,16 @@ function doLogin(): Promise<void>;
40
44
 
41
45
  这是一个无参的返回 `Promise<void>` 的方法,一般来说对弹窗登录的 `Promise` 封装。
42
46
 
47
+ ### headerKeys
48
+
49
+ > 使用 Cookie 的情况不需要。
50
+
51
+ 注意:如果登录用的 **不是** Cookie,而用的是 Header 的话,需要在重试请求前将原请求 `config.headers` 中对应的值清掉。
52
+
53
+ 这是由于 Fetcher 拦截器放的 header、params、body 等优先级不能比传入值高,而前一次由拦截器混入的 `headers` 在重试的二次 请求中,地位变成了传入值。
54
+
55
+ 解决的办法是,使用 fetcher 提供的帮助方法 `deleteConfigHeaders` 在二次调用前清除相应的 header(可能有多个),这里提供了简便的配置属性 `headerKeys`。
56
+
43
57
  ## FAQ
44
58
 
45
59
  ### ❓登录窗怎么实现?
@@ -8,22 +8,27 @@ exports.default = createInterceptorResponseRejected;
8
8
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _fetcher = require("@kcuf/fetcher");
11
- var _shouldDoLogin = _interopRequireDefault(require("./should-do-login"));
12
11
  var _singletonPromise = _interopRequireDefault(require("./singleton-promise"));
13
- function createInterceptorResponseRejected(needLogin, doLogin) {
12
+ function createInterceptorResponseRejected(_ref) {
13
+ var needLogin = _ref.needLogin,
14
+ doLogin = _ref.doLogin,
15
+ headerKeys = _ref.headerKeys;
14
16
  var singletonLogin = (0, _singletonPromise.default)(doLogin);
15
17
  return /*#__PURE__*/function () {
16
- var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(error, fetcherConfig, _, requestByInterceptor) {
18
+ var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(error, fetcherConfig, _, requestByInterceptor) {
17
19
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
18
20
  while (1) switch (_context.prev = _context.next) {
19
21
  case 0:
20
- if ((0, _shouldDoLogin.default)(error, needLogin)) {
22
+ if (!(error.name !== _fetcher.FetcherErrorName.BIZ || !error.code || !needLogin(error.code))) {
21
23
  _context.next = 2;
22
24
  break;
23
25
  }
24
26
  throw error;
25
27
  case 2:
26
28
  return _context.abrupt("return", singletonLogin().then(function () {
29
+ if (headerKeys) {
30
+ (0, _fetcher.deleteConfigHeaders)(fetcherConfig, headerKeys);
31
+ }
27
32
  return requestByInterceptor(fetcherConfig); // 登录完成,重新发起原请求
28
33
  }, function () {
29
34
  // 一般登录弹窗在登录成功之前是不应该被关闭或取消的,但若真允许取消,这里需要修改错误为「取消登录」
@@ -37,7 +42,7 @@ function createInterceptorResponseRejected(needLogin, doLogin) {
37
42
  }, _callee);
38
43
  }));
39
44
  return function (_x, _x2, _x3, _x4) {
40
- return _ref.apply(this, arguments);
45
+ return _ref2.apply(this, arguments);
41
46
  };
42
47
  }();
43
48
  }
@@ -7,9 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = intercept;
8
8
  var _createInterceptorResponseRejected = _interopRequireDefault(require("./create-interceptor-response-rejected"));
9
9
  /**
10
- * 当接口报未登录,可以弹窗登录,优先级必须高于 `merging`
10
+ * 当接口报未登录,可以弹窗登录
11
+ *
12
+ * FIXME 和 merging 无法共存的问题
13
+ *
14
+ * 1. 多个请求时,只有第一个可以(要求优先级比 merging 高)
15
+ * 2. 出错后,登录,成功,然无法成功(要求优先级比 merging 低)
11
16
  */
12
- function intercept(fetcher, needLogin, doLogin) {
13
- var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;
14
- return fetcher.interceptResponse(undefined, (0, _createInterceptorResponseRejected.default)(needLogin, doLogin), priority);
17
+ function intercept(fetcher, createInterceptorOptions) {
18
+ var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 40;
19
+ return fetcher.interceptResponse(undefined, (0, _createInterceptorResponseRejected.default)(createInterceptorOptions), priority);
15
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/types/index.ts"],"sourcesContent":["export type TNeedLogin = (code: string) => boolean;\nexport type TDoLogin = () => Promise<void>;"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/types/index.ts"],"sourcesContent":["export interface ICreateInterceptorOptions {\n needLogin(code: string): boolean;\n doLogin(): Promise<void>;\n headerKeys?: string[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,22 +1,27 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import { FetcherErrorName } from '@kcuf/fetcher';
4
- import shouldDoLogin from './should-do-login';
3
+ import { FetcherErrorName, deleteConfigHeaders } from '@kcuf/fetcher';
5
4
  import singletonPromise from './singleton-promise';
6
- export default function createInterceptorResponseRejected(needLogin, doLogin) {
5
+ export default function createInterceptorResponseRejected(_ref) {
6
+ var needLogin = _ref.needLogin,
7
+ doLogin = _ref.doLogin,
8
+ headerKeys = _ref.headerKeys;
7
9
  var singletonLogin = singletonPromise(doLogin);
8
10
  return /*#__PURE__*/function () {
9
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(error, fetcherConfig, _, requestByInterceptor) {
11
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(error, fetcherConfig, _, requestByInterceptor) {
10
12
  return _regeneratorRuntime().wrap(function _callee$(_context) {
11
13
  while (1) switch (_context.prev = _context.next) {
12
14
  case 0:
13
- if (shouldDoLogin(error, needLogin)) {
15
+ if (!(error.name !== FetcherErrorName.BIZ || !error.code || !needLogin(error.code))) {
14
16
  _context.next = 2;
15
17
  break;
16
18
  }
17
19
  throw error;
18
20
  case 2:
19
21
  return _context.abrupt("return", singletonLogin().then(function () {
22
+ if (headerKeys) {
23
+ deleteConfigHeaders(fetcherConfig, headerKeys);
24
+ }
20
25
  return requestByInterceptor(fetcherConfig); // 登录完成,重新发起原请求
21
26
  }, function () {
22
27
  // 一般登录弹窗在登录成功之前是不应该被关闭或取消的,但若真允许取消,这里需要修改错误为「取消登录」
@@ -30,7 +35,7 @@ export default function createInterceptorResponseRejected(needLogin, doLogin) {
30
35
  }, _callee);
31
36
  }));
32
37
  return function (_x, _x2, _x3, _x4) {
33
- return _ref.apply(this, arguments);
38
+ return _ref2.apply(this, arguments);
34
39
  };
35
40
  }();
36
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-interceptor-response-rejected.js","names":["FetcherErrorName","shouldDoLogin","singletonPromise","createInterceptorResponseRejected","needLogin","doLogin","singletonLogin","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","error","fetcherConfig","_","requestByInterceptor","wrap","_callee$","_context","prev","next","abrupt","then","name","LOGIN_CANCELLED","stop","_x","_x2","_x3","_x4","apply","arguments"],"sources":["../../../src/util/create-interceptor-response-rejected.ts"],"sourcesContent":["import {\n FetcherErrorName,\n FetcherConfig,\n FetcherError,\n FetcherResponse,\n FetcherCallRequest,\n FetcherInterceptResponseRejected\n} from '@kcuf/fetcher';\n\nimport {\n TNeedLogin,\n TDoLogin\n} from '../types';\n\nimport shouldDoLogin from './should-do-login';\nimport singletonPromise from './singleton-promise';\n\nexport default function createInterceptorResponseRejected(needLogin: TNeedLogin, doLogin: TDoLogin): FetcherInterceptResponseRejected {\n const singletonLogin = singletonPromise(doLogin);\n \n return async (error: FetcherError, fetcherConfig: FetcherConfig, _: FetcherResponse<unknown> | undefined, requestByInterceptor: FetcherCallRequest) => {\n if (!shouldDoLogin(error, needLogin)) {\n throw error;\n }\n \n return singletonLogin().then(() => {\n return requestByInterceptor(fetcherConfig); // 登录完成,重新发起原请求\n }, () => {\n // 一般登录弹窗在登录成功之前是不应该被关闭或取消的,但若真允许取消,这里需要修改错误为「取消登录」\n error.name = FetcherErrorName.LOGIN_CANCELLED;\n \n throw error; // 以新的 name 继续抛错\n });\n };\n}\n"],"mappings":";;AAAA,SACEA,gBAAgB,QAMX,eAAe;AAOtB,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,gBAAgB,MAAM,qBAAqB;AAElD,eAAe,SAASC,iCAAiCA,CAACC,SAAqB,EAAEC,OAAiB,EAAoC;EACpI,IAAMC,cAAc,GAAGJ,gBAAgB,CAACG,OAAO,CAAC;EAEhD;IAAA,IAAAE,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAO,SAAAC,QAAOC,KAAmB,EAAEC,aAA4B,EAAEC,CAAuC,EAAEC,oBAAwC;MAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,IAC3InB,aAAa,CAACW,KAAK,EAAER,SAAS,CAAC;cAAAc,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,MAC5BR,KAAK;UAAA;YAAA,OAAAM,QAAA,CAAAG,MAAA,WAGNf,cAAc,CAAC,CAAC,CAACgB,IAAI,CAAC,YAAM;cACjC,OAAOP,oBAAoB,CAACF,aAAa,CAAC,CAAC,CAAC;YAC9C,CAAC,EAAE,YAAM;cACP;cACAD,KAAK,CAACW,IAAI,GAAGvB,gBAAgB,CAACwB,eAAe;cAE7C,MAAMZ,KAAK,CAAC,CAAC;YACf,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAM,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAd,OAAA;IAAA,CACH;IAAA,iBAAAe,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAtB,IAAA,CAAAuB,KAAA,OAAAC,SAAA;IAAA;EAAA;AACH","ignoreList":[]}
1
+ {"version":3,"file":"create-interceptor-response-rejected.js","names":["FetcherErrorName","deleteConfigHeaders","singletonPromise","createInterceptorResponseRejected","_ref","needLogin","doLogin","headerKeys","singletonLogin","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","error","fetcherConfig","_","requestByInterceptor","wrap","_callee$","_context","prev","next","name","BIZ","code","abrupt","then","LOGIN_CANCELLED","stop","_x","_x2","_x3","_x4","apply","arguments"],"sources":["../../../src/util/create-interceptor-response-rejected.ts"],"sourcesContent":["import {\n FetcherErrorName,\n FetcherConfig,\n FetcherError,\n FetcherResponse,\n FetcherCallRequest,\n FetcherInterceptResponseRejected,\n deleteConfigHeaders\n} from '@kcuf/fetcher';\n\nimport {\n ICreateInterceptorOptions\n} from '../types';\n\nimport singletonPromise from './singleton-promise';\n\nexport default function createInterceptorResponseRejected({\n needLogin,\n doLogin,\n headerKeys\n}: ICreateInterceptorOptions): FetcherInterceptResponseRejected {\n const singletonLogin = singletonPromise(doLogin);\n \n return async (error: FetcherError, fetcherConfig: FetcherConfig, _: FetcherResponse<unknown> | undefined, requestByInterceptor: FetcherCallRequest) => {\n if (error.name !== FetcherErrorName.BIZ || !error.code || !needLogin(error.code)) {\n throw error;\n }\n \n return singletonLogin().then(() => {\n if (headerKeys) {\n deleteConfigHeaders(fetcherConfig, headerKeys);\n }\n \n return requestByInterceptor(fetcherConfig); // 登录完成,重新发起原请求\n }, () => {\n // 一般登录弹窗在登录成功之前是不应该被关闭或取消的,但若真允许取消,这里需要修改错误为「取消登录」\n error.name = FetcherErrorName.LOGIN_CANCELLED;\n \n throw error; // 以新的 name 继续抛错\n });\n };\n}\n"],"mappings":";;AAAA,SACEA,gBAAgB,EAMhBC,mBAAmB,QACd,eAAe;AAMtB,OAAOC,gBAAgB,MAAM,qBAAqB;AAElD,eAAe,SAASC,iCAAiCA,CAAAC,IAAA,EAIO;EAAA,IAH9DC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,UAAU,GAAAH,IAAA,CAAVG,UAAU;EAEV,IAAMC,cAAc,GAAGN,gBAAgB,CAACI,OAAO,CAAC;EAEhD;IAAA,IAAAG,KAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAO,SAAAC,QAAOC,KAAmB,EAAEC,aAA4B,EAAEC,CAAuC,EAAEC,oBAAwC;MAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,MAC5IR,KAAK,CAACS,IAAI,KAAKvB,gBAAgB,CAACwB,GAAG,IAAI,CAACV,KAAK,CAACW,IAAI,IAAI,CAACpB,SAAS,CAACS,KAAK,CAACW,IAAI,CAAC;cAAAL,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,MACxER,KAAK;UAAA;YAAA,OAAAM,QAAA,CAAAM,MAAA,WAGNlB,cAAc,CAAC,CAAC,CAACmB,IAAI,CAAC,YAAM;cACjC,IAAIpB,UAAU,EAAE;gBACdN,mBAAmB,CAACc,aAAa,EAAER,UAAU,CAAC;cAChD;cAEA,OAAOU,oBAAoB,CAACF,aAAa,CAAC,CAAC,CAAC;YAC9C,CAAC,EAAE,YAAM;cACP;cACAD,KAAK,CAACS,IAAI,GAAGvB,gBAAgB,CAAC4B,eAAe;cAE7C,MAAMd,KAAK,CAAC,CAAC;YACf,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAM,QAAA,CAAAS,IAAA;QAAA;MAAA,GAAAhB,OAAA;IAAA,CACH;IAAA,iBAAAiB,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAxB,KAAA,CAAAyB,KAAA,OAAAC,SAAA;IAAA;EAAA;AACH","ignoreList":[]}
@@ -1,10 +1,15 @@
1
1
  import createInterceptorResponseRejected from './create-interceptor-response-rejected';
2
2
 
3
3
  /**
4
- * 当接口报未登录,可以弹窗登录,优先级必须高于 `merging`
4
+ * 当接口报未登录,可以弹窗登录
5
+ *
6
+ * FIXME 和 merging 无法共存的问题
7
+ *
8
+ * 1. 多个请求时,只有第一个可以(要求优先级比 merging 高)
9
+ * 2. 出错后,登录,成功,然无法成功(要求优先级比 merging 低)
5
10
  */
6
- export default function intercept(fetcher, needLogin, doLogin) {
7
- var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;
8
- return fetcher.interceptResponse(undefined, createInterceptorResponseRejected(needLogin, doLogin), priority);
11
+ export default function intercept(fetcher, createInterceptorOptions) {
12
+ var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 40;
13
+ return fetcher.interceptResponse(undefined, createInterceptorResponseRejected(createInterceptorOptions), priority);
9
14
  }
10
15
  //# sourceMappingURL=intercept.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"intercept.js","names":["createInterceptorResponseRejected","intercept","fetcher","needLogin","doLogin","priority","arguments","length","undefined","interceptResponse"],"sources":["../../../src/util/intercept.ts"],"sourcesContent":["import {\n Fetcher\n} from '@kcuf/fetcher';\n\nimport {\n TDoLogin,\n TNeedLogin\n} from '../types';\n\nimport createInterceptorResponseRejected from './create-interceptor-response-rejected';\n\n/**\n * 当接口报未登录,可以弹窗登录,优先级必须高于 `merging`\n */\nexport default function intercept(fetcher: Fetcher, needLogin: TNeedLogin, doLogin: TDoLogin, priority = 25): () => void {\n return fetcher.interceptResponse(undefined, createInterceptorResponseRejected(needLogin, doLogin), priority);\n}\n"],"mappings":"AASA,OAAOA,iCAAiC,MAAM,wCAAwC;;AAEtF;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,OAAgB,EAAEC,SAAqB,EAAEC,OAAiB,EAA6B;EAAA,IAA3BC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACzG,OAAOJ,OAAO,CAACO,iBAAiB,CAACD,SAAS,EAAER,iCAAiC,CAACG,SAAS,EAAEC,OAAO,CAAC,EAAEC,QAAQ,CAAC;AAC9G","ignoreList":[]}
1
+ {"version":3,"file":"intercept.js","names":["createInterceptorResponseRejected","intercept","fetcher","createInterceptorOptions","priority","arguments","length","undefined","interceptResponse"],"sources":["../../../src/util/intercept.ts"],"sourcesContent":["import {\n Fetcher\n} from '@kcuf/fetcher';\n\nimport {\n ICreateInterceptorOptions\n} from '../types';\n\nimport createInterceptorResponseRejected from './create-interceptor-response-rejected';\n\n/**\n * 当接口报未登录,可以弹窗登录\n *\n * FIXME 和 merging 无法共存的问题\n *\n * 1. 多个请求时,只有第一个可以(要求优先级比 merging 高)\n * 2. 出错后,登录,成功,然无法成功(要求优先级比 merging 低)\n */\nexport default function intercept(fetcher: Fetcher, createInterceptorOptions: ICreateInterceptorOptions, priority = 40): () => void {\n return fetcher.interceptResponse(undefined, createInterceptorResponseRejected(createInterceptorOptions), priority);\n}\n"],"mappings":"AAQA,OAAOA,iCAAiC,MAAM,wCAAwC;;AAEtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,OAAgB,EAAEC,wBAAmD,EAA6B;EAAA,IAA3BC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACpH,OAAOH,OAAO,CAACM,iBAAiB,CAACD,SAAS,EAAEP,iCAAiC,CAACG,wBAAwB,CAAC,EAAEC,QAAQ,CAAC;AACpH","ignoreList":[]}
@@ -1,2 +1,5 @@
1
- export type TNeedLogin = (code: string) => boolean;
2
- export type TDoLogin = () => Promise<void>;
1
+ export interface ICreateInterceptorOptions {
2
+ needLogin(code: string): boolean;
3
+ doLogin(): Promise<void>;
4
+ headerKeys?: string[];
5
+ }
@@ -1,3 +1,3 @@
1
1
  import { FetcherInterceptResponseRejected } from '@kcuf/fetcher';
2
- import { TNeedLogin, TDoLogin } from '../types';
3
- export default function createInterceptorResponseRejected(needLogin: TNeedLogin, doLogin: TDoLogin): FetcherInterceptResponseRejected;
2
+ import { ICreateInterceptorOptions } from '../types';
3
+ export default function createInterceptorResponseRejected({ needLogin, doLogin, headerKeys }: ICreateInterceptorOptions): FetcherInterceptResponseRejected;
@@ -1,6 +1,11 @@
1
1
  import { Fetcher } from '@kcuf/fetcher';
2
- import { TDoLogin, TNeedLogin } from '../types';
2
+ import { ICreateInterceptorOptions } from '../types';
3
3
  /**
4
- * 当接口报未登录,可以弹窗登录,优先级必须高于 `merging`
4
+ * 当接口报未登录,可以弹窗登录
5
+ *
6
+ * FIXME 和 merging 无法共存的问题
7
+ *
8
+ * 1. 多个请求时,只有第一个可以(要求优先级比 merging 高)
9
+ * 2. 出错后,登录,成功,然无法成功(要求优先级比 merging 低)
5
10
  */
6
- export default function intercept(fetcher: Fetcher, needLogin: TNeedLogin, doLogin: TDoLogin, priority?: number): () => void;
11
+ export default function intercept(fetcher: Fetcher, createInterceptorOptions: ICreateInterceptorOptions, priority?: number): () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kcuf/fetcher-interceptor-login",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Fetcher interceptor seamless login and redo request.",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -28,20 +28,20 @@
28
28
  "@babel/preset-env": "^7.26.0",
29
29
  "@babel/preset-typescript": "^7.26.0",
30
30
  "@types/lodash": "^4.17.13",
31
- "@vitest/coverage-v8": "^2.1.4",
32
- "fetch-mock": "^12.1.0",
31
+ "@vitest/coverage-v8": "^2.1.6",
32
+ "fetch-mock": "^12.2.0",
33
33
  "jsdom": "^25.0.1",
34
34
  "rimraf": "^6.0.1",
35
- "typescript": "^5.6.3",
36
- "vitest": "^2.1.4",
35
+ "typescript": "^5.7.2",
36
+ "vitest": "^2.1.6",
37
37
  "@kcuf/ts-config": "^0.0.1"
38
38
  },
39
39
  "peerDependencies": {
40
- "@babel/runtime": "^7.24.8"
40
+ "@babel/runtime": "^7.x"
41
41
  },
42
42
  "dependencies": {
43
43
  "lodash": "^4.17.21",
44
- "@kcuf/fetcher": "^0.1.6"
44
+ "@kcuf/fetcher": "^0.1.7"
45
45
  },
46
46
  "scripts": {
47
47
  "build:clean": "rimraf dist",
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = shouldDoLogin;
7
- var _fetcher = require("@kcuf/fetcher");
8
- function shouldDoLogin(error, needLogin) {
9
- return error.name === _fetcher.FetcherErrorName.BIZ && error.code ? needLogin(error.code) : false;
10
- }
@@ -1,5 +0,0 @@
1
- import { FetcherErrorName } from '@kcuf/fetcher';
2
- export default function shouldDoLogin(error, needLogin) {
3
- return error.name === FetcherErrorName.BIZ && error.code ? needLogin(error.code) : false;
4
- }
5
- //# sourceMappingURL=should-do-login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"should-do-login.js","names":["FetcherErrorName","shouldDoLogin","error","needLogin","name","BIZ","code"],"sources":["../../../src/util/should-do-login.ts"],"sourcesContent":["import {\n FetcherErrorName,\n FetcherError\n} from '@kcuf/fetcher';\n\nimport {\n TNeedLogin\n} from '../types';\n\nexport default function shouldDoLogin(error: FetcherError, needLogin: TNeedLogin): boolean {\n return error.name === FetcherErrorName.BIZ && error.code ? needLogin(error.code) : false;\n}\n"],"mappings":"AAAA,SACEA,gBAAgB,QAEX,eAAe;AAMtB,eAAe,SAASC,aAAaA,CAACC,KAAmB,EAAEC,SAAqB,EAAW;EACzF,OAAOD,KAAK,CAACE,IAAI,KAAKJ,gBAAgB,CAACK,GAAG,IAAIH,KAAK,CAACI,IAAI,GAAGH,SAAS,CAACD,KAAK,CAACI,IAAI,CAAC,GAAG,KAAK;AAC1F","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import { FetcherError } from '@kcuf/fetcher';
2
- import { TNeedLogin } from '../types';
3
- export default function shouldDoLogin(error: FetcherError, needLogin: TNeedLogin): boolean;