@chzky/reqwest 0.0.1 → 0.1.1
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 +314 -0
- package/esm/_dnt.polyfills.d.ts +11 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -10
- package/esm/_dnt.polyfills.js +24 -66
- package/esm/_dnt.shims.d.ts +1 -13
- package/esm/_dnt.shims.d.ts.map +1 -1
- package/esm/_dnt.shims.js +57 -1
- package/esm/lib/core/class.d.ts +122 -0
- package/esm/lib/core/class.d.ts.map +1 -0
- package/esm/lib/core/class.js +173 -0
- package/esm/lib/core/core.d.ts +11 -0
- package/esm/lib/core/core.d.ts.map +1 -0
- package/esm/lib/core/core.js +157 -0
- package/esm/lib/{reqwest → core}/factor.d.ts +57 -9
- package/esm/lib/core/factor.d.ts.map +1 -0
- package/esm/lib/core/factor.js +48 -0
- package/esm/lib/core/interface.d.ts +172 -0
- package/esm/lib/core/interface.d.ts.map +1 -0
- package/esm/lib/core/interface.js +1 -0
- package/esm/lib/core/mod.d.ts +5 -0
- package/esm/lib/core/mod.d.ts.map +1 -0
- package/esm/lib/core/mod.js +3 -0
- package/esm/lib/helper/mod.d.ts +2 -0
- package/esm/lib/helper/mod.d.ts.map +1 -1
- package/esm/lib/helper/mod.js +2 -0
- package/esm/lib/helper/other/mod.d.ts +2 -0
- package/esm/lib/helper/other/mod.d.ts.map +1 -0
- package/esm/lib/helper/other/mod.js +1 -0
- package/esm/lib/helper/other/sseParse.d.ts +34 -0
- package/esm/lib/helper/other/sseParse.d.ts.map +1 -0
- package/esm/lib/helper/other/sseParse.js +42 -0
- package/esm/lib/helper/request/RESTful.d.ts +43 -11
- package/esm/lib/helper/request/RESTful.d.ts.map +1 -1
- package/esm/lib/helper/request/RESTful.js +129 -1
- package/esm/lib/helper/request/baseConf.d.ts +11 -4
- package/esm/lib/helper/request/baseConf.d.ts.map +1 -1
- package/esm/lib/helper/request/baseConf.js +37 -1
- package/esm/lib/helper/request/factors.d.ts +31 -0
- package/esm/lib/helper/request/factors.d.ts.map +1 -0
- package/esm/lib/helper/request/factors.js +40 -0
- package/esm/lib/helper/request/input.d.ts +5 -4
- package/esm/lib/helper/request/input.d.ts.map +1 -1
- package/esm/lib/helper/request/input.js +24 -1
- package/esm/lib/helper/request/mod.d.ts +4 -1
- package/esm/lib/helper/request/mod.d.ts.map +1 -1
- package/esm/lib/helper/request/mod.js +6 -3
- package/esm/lib/helper/request/process.d.ts +16 -0
- package/esm/lib/helper/request/process.d.ts.map +1 -0
- package/esm/lib/helper/request/process.js +37 -0
- package/esm/lib/helper/request/wait.d.ts +9 -0
- package/esm/lib/helper/request/wait.d.ts.map +1 -0
- package/esm/lib/helper/request/wait.js +13 -0
- package/esm/lib/helper/response/blobToUrl.d.ts +11 -0
- package/esm/lib/helper/response/blobToUrl.d.ts.map +1 -0
- package/esm/lib/helper/response/blobToUrl.js +22 -0
- package/esm/lib/helper/response/mod.d.ts +3 -1
- package/esm/lib/helper/response/mod.d.ts.map +1 -1
- package/esm/lib/helper/response/mod.js +4 -2
- package/esm/lib/helper/response/openLink.d.ts +8 -0
- package/esm/lib/helper/response/openLink.d.ts.map +1 -0
- package/esm/lib/helper/response/openLink.js +21 -0
- package/esm/lib/helper/response/output.d.ts +14 -3
- package/esm/lib/helper/response/output.d.ts.map +1 -1
- package/esm/lib/helper/response/output.js +24 -1
- package/esm/lib/helper/response/pick.d.ts +19 -2
- package/esm/lib/helper/response/pick.d.ts.map +1 -1
- package/esm/lib/helper/response/pick.js +26 -1
- package/esm/lib/helper/use/mod.js +2 -2
- package/esm/lib/helper/use/useCancel.d.ts +32 -2
- package/esm/lib/helper/use/useCancel.d.ts.map +1 -1
- package/esm/lib/helper/use/useCancel.js +42 -1
- package/esm/lib/helper/use/useLoading.d.ts +27 -7
- package/esm/lib/helper/use/useLoading.d.ts.map +1 -1
- package/esm/lib/helper/use/useLoading.js +58 -1
- package/esm/lib/mod.d.ts +1 -1
- package/esm/lib/mod.d.ts.map +1 -1
- package/esm/lib/mod.js +1 -1
- package/package.json +4 -11
- package/script/_dnt.polyfills.d.ts +11 -0
- package/script/_dnt.polyfills.d.ts.map +1 -1
- package/script/_dnt.polyfills.js +15 -0
- package/script/_dnt.shims.d.ts +1 -13
- package/script/_dnt.shims.d.ts.map +1 -1
- package/script/_dnt.shims.js +2 -21
- package/script/lib/core/class.d.ts +122 -0
- package/script/lib/core/class.d.ts.map +1 -0
- package/script/lib/core/class.js +180 -0
- package/script/lib/core/core.d.ts +11 -0
- package/script/lib/core/core.d.ts.map +1 -0
- package/script/lib/core/core.js +165 -0
- package/script/lib/{reqwest → core}/factor.d.ts +57 -9
- package/script/lib/core/factor.d.ts.map +1 -0
- package/script/lib/{reqwest → core}/factor.js +24 -8
- package/script/lib/core/interface.d.ts +172 -0
- package/script/lib/core/interface.d.ts.map +1 -0
- package/script/lib/core/mod.d.ts +5 -0
- package/script/lib/core/mod.d.ts.map +1 -0
- package/script/lib/{reqwest → core}/mod.js +1 -0
- package/script/lib/helper/mod.d.ts +2 -0
- package/script/lib/helper/mod.d.ts.map +1 -1
- package/script/lib/helper/mod.js +2 -0
- package/script/lib/helper/other/mod.d.ts +2 -0
- package/script/lib/helper/other/mod.d.ts.map +1 -0
- package/script/lib/helper/other/mod.js +17 -0
- package/script/lib/helper/other/sseParse.d.ts +34 -0
- package/script/lib/helper/other/sseParse.d.ts.map +1 -0
- package/script/lib/helper/other/sseParse.js +45 -0
- package/script/lib/helper/request/RESTful.d.ts +43 -11
- package/script/lib/helper/request/RESTful.d.ts.map +1 -1
- package/script/lib/helper/request/RESTful.js +75 -21
- package/script/lib/helper/request/baseConf.d.ts +11 -4
- package/script/lib/helper/request/baseConf.d.ts.map +1 -1
- package/script/lib/helper/request/baseConf.js +25 -10
- package/script/lib/helper/request/factors.d.ts +31 -0
- package/script/lib/helper/request/factors.d.ts.map +1 -0
- package/script/lib/helper/request/factors.js +43 -0
- package/script/lib/helper/request/input.d.ts +5 -4
- package/script/lib/helper/request/input.d.ts.map +1 -1
- package/script/lib/helper/request/input.js +11 -11
- package/script/lib/helper/request/mod.d.ts +4 -1
- package/script/lib/helper/request/mod.d.ts.map +1 -1
- package/script/lib/helper/request/mod.js +6 -3
- package/script/lib/helper/request/process.d.ts +16 -0
- package/script/lib/helper/request/process.d.ts.map +1 -0
- package/script/lib/helper/request/process.js +41 -0
- package/script/lib/helper/request/wait.d.ts +9 -0
- package/script/lib/helper/request/wait.d.ts.map +1 -0
- package/script/lib/helper/request/wait.js +16 -0
- package/script/lib/helper/response/blobToUrl.d.ts +11 -0
- package/script/lib/helper/response/blobToUrl.d.ts.map +1 -0
- package/script/lib/helper/response/blobToUrl.js +25 -0
- package/script/lib/helper/response/mod.d.ts +3 -1
- package/script/lib/helper/response/mod.d.ts.map +1 -1
- package/script/lib/helper/response/mod.js +4 -2
- package/script/lib/helper/response/openLink.d.ts +8 -0
- package/script/lib/helper/response/openLink.d.ts.map +1 -0
- package/script/lib/helper/response/openLink.js +47 -0
- package/script/lib/helper/response/output.d.ts +14 -3
- package/script/lib/helper/response/output.d.ts.map +1 -1
- package/script/lib/helper/response/output.js +20 -7
- package/script/lib/helper/response/pick.d.ts +19 -2
- package/script/lib/helper/response/pick.d.ts.map +1 -1
- package/script/lib/helper/response/pick.js +22 -5
- package/script/lib/helper/use/mod.js +2 -2
- package/script/lib/helper/use/useCancel.d.ts +32 -2
- package/script/lib/helper/use/useCancel.d.ts.map +1 -1
- package/script/lib/helper/use/useCancel.js +37 -7
- package/script/lib/helper/use/useLoading.d.ts +27 -7
- package/script/lib/helper/use/useLoading.d.ts.map +1 -1
- package/script/lib/helper/use/useLoading.js +56 -46
- package/script/lib/mod.d.ts +1 -1
- package/script/lib/mod.d.ts.map +1 -1
- package/script/lib/mod.js +1 -1
- package/esm/lib/reqwest/class.d.ts +0 -84
- package/esm/lib/reqwest/class.d.ts.map +0 -1
- package/esm/lib/reqwest/class.js +0 -1
- package/esm/lib/reqwest/core.d.ts +0 -6
- package/esm/lib/reqwest/core.d.ts.map +0 -1
- package/esm/lib/reqwest/core.js +0 -250
- package/esm/lib/reqwest/factor.d.ts.map +0 -1
- package/esm/lib/reqwest/factor.js +0 -1
- package/esm/lib/reqwest/interface.d.ts +0 -48
- package/esm/lib/reqwest/interface.d.ts.map +0 -1
- package/esm/lib/reqwest/interface.js +0 -1
- package/esm/lib/reqwest/mod.d.ts +0 -4
- package/esm/lib/reqwest/mod.d.ts.map +0 -1
- package/esm/lib/reqwest/mod.js +0 -2
- package/script/lib/reqwest/class.d.ts +0 -84
- package/script/lib/reqwest/class.d.ts.map +0 -1
- package/script/lib/reqwest/class.js +0 -72
- package/script/lib/reqwest/core.d.ts +0 -6
- package/script/lib/reqwest/core.d.ts.map +0 -1
- package/script/lib/reqwest/core.js +0 -72
- package/script/lib/reqwest/factor.d.ts.map +0 -1
- package/script/lib/reqwest/interface.d.ts +0 -23
- package/script/lib/reqwest/interface.d.ts.map +0 -1
- package/script/lib/reqwest/mod.d.ts +0 -4
- package/script/lib/reqwest/mod.d.ts.map +0 -1
- /package/script/lib/{reqwest → core}/interface.js +0 -0
|
@@ -2,26 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.header = header;
|
|
4
4
|
exports.response_type = response_type;
|
|
5
|
-
|
|
5
|
+
exports.timeout = timeout;
|
|
6
|
+
const core_1 = require("@chzky/core");
|
|
6
7
|
/** ## `header` : 修改请求头数据
|
|
7
|
-
@param
|
|
8
|
+
@param head `AxiosRequestHeaders` - 请求头数据
|
|
8
9
|
@type `Interceptor` - `Request`
|
|
9
|
-
@category
|
|
10
|
+
@category Helper
|
|
10
11
|
*/
|
|
11
|
-
function header(
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
function header(head) {
|
|
13
|
+
return conf => {
|
|
14
|
+
for (const key in head) {
|
|
15
|
+
if (Object.hasOwn(head, key))
|
|
16
|
+
conf.headers.set(String(key), head[key]);
|
|
17
|
+
}
|
|
18
|
+
return (0, core_1.Ok)();
|
|
15
19
|
};
|
|
16
20
|
}
|
|
17
21
|
/** ## `response_type` : 修改响应数据类型
|
|
18
22
|
@param type `ResponseType` - 响应数据类型
|
|
19
23
|
@type `Interceptor` - `Request`
|
|
20
|
-
@category
|
|
24
|
+
@category Helper
|
|
21
25
|
*/
|
|
22
26
|
function response_type(type) {
|
|
23
|
-
return
|
|
27
|
+
return conf => {
|
|
24
28
|
conf.responseType = type;
|
|
25
|
-
return (0,
|
|
29
|
+
return (0, core_1.Ok)();
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** ## `timeout` : 修改请求超时时间
|
|
33
|
+
@param time `PositiveInteger<N>` - 请求超时时间
|
|
34
|
+
@type `Interceptor` - `Request`
|
|
35
|
+
@category Helper
|
|
36
|
+
*/
|
|
37
|
+
function timeout(time) {
|
|
38
|
+
return conf => {
|
|
39
|
+
conf.timeout = time;
|
|
40
|
+
return (0, core_1.Ok)();
|
|
26
41
|
};
|
|
27
42
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Fn, JsonXObject, zod } from '@chzky/core';
|
|
2
|
+
import type { RequestInterceptor } from '../../../mod.js';
|
|
3
|
+
import { CheckingError } from '@chzky/core';
|
|
4
|
+
type Methods = 'get' | 'post' | 'put' | 'delete' | 'form';
|
|
5
|
+
/** ## `restful_request` : `url配置` + `类型校验` + `数据输入`
|
|
6
|
+
+ 对于`get`请求 , data传数据到`query`上
|
|
7
|
+
+ 对于`post`|`put`|`delete`|`form`请求 , data传数据到`body`上
|
|
8
|
+
@example Usage
|
|
9
|
+
```ts
|
|
10
|
+
// GET请求 - 验证
|
|
11
|
+
const get_user = restful_request('get', '/api/users', z.object({ id: z.number() }))
|
|
12
|
+
get_user({ id: 1 }) // params: { id: 1 }
|
|
13
|
+
|
|
14
|
+
// POST请求 - 验证
|
|
15
|
+
const create_user = restful_request('post', '/api/users', z.object({ name: z.string() }))
|
|
16
|
+
create_user({ name: 'john' }) // body: { name: 'john' }
|
|
17
|
+
|
|
18
|
+
// PUT请求 - 无验证
|
|
19
|
+
const update_user = restful_request('put', '/api/users')
|
|
20
|
+
update_user({ name: 'john' }) // body: { name: 'john' }
|
|
21
|
+
|
|
22
|
+
// 表单请求 - 无验证
|
|
23
|
+
const upload = restful_request('form', '/api/upload')
|
|
24
|
+
upload(new FormData()) // body: FormData
|
|
25
|
+
```
|
|
26
|
+
@type `Interceptor` - `Request`
|
|
27
|
+
@cataegory Factor
|
|
28
|
+
*/
|
|
29
|
+
export declare function restful_request<T extends JsonXObject & Record<string | number, string | Blob> = never>(method: Methods, url: string, validate?: zod.Schema<T>): Fn<T, RequestInterceptor<T extends never ? never : CheckingError>>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=factors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factors.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/request/factors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAS,MAAM,aAAa,CAAA;AAGlD,KAAK,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAGzD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAC9B,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,EAEtE,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GACtB,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC,CAAC,CAYpE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.restful_request = restful_request;
|
|
4
|
+
const core_1 = require("@chzky/core");
|
|
5
|
+
const mod_js_1 = require("../../../mod.js");
|
|
6
|
+
const ERROR_MSG = `param checktype must be 'data' or 'params`;
|
|
7
|
+
/** ## `restful_request` : `url配置` + `类型校验` + `数据输入`
|
|
8
|
+
+ 对于`get`请求 , data传数据到`query`上
|
|
9
|
+
+ 对于`post`|`put`|`delete`|`form`请求 , data传数据到`body`上
|
|
10
|
+
@example Usage
|
|
11
|
+
```ts
|
|
12
|
+
// GET请求 - 验证
|
|
13
|
+
const get_user = restful_request('get', '/api/users', z.object({ id: z.number() }))
|
|
14
|
+
get_user({ id: 1 }) // params: { id: 1 }
|
|
15
|
+
|
|
16
|
+
// POST请求 - 验证
|
|
17
|
+
const create_user = restful_request('post', '/api/users', z.object({ name: z.string() }))
|
|
18
|
+
create_user({ name: 'john' }) // body: { name: 'john' }
|
|
19
|
+
|
|
20
|
+
// PUT请求 - 无验证
|
|
21
|
+
const update_user = restful_request('put', '/api/users')
|
|
22
|
+
update_user({ name: 'john' }) // body: { name: 'john' }
|
|
23
|
+
|
|
24
|
+
// 表单请求 - 无验证
|
|
25
|
+
const upload = restful_request('form', '/api/upload')
|
|
26
|
+
upload(new FormData()) // body: FormData
|
|
27
|
+
```
|
|
28
|
+
@type `Interceptor` - `Request`
|
|
29
|
+
@cataegory Factor
|
|
30
|
+
*/
|
|
31
|
+
function restful_request(method, url, validate) {
|
|
32
|
+
return ((data) => {
|
|
33
|
+
const METHOD = (0, core_1.match)(method)
|
|
34
|
+
.case('delete', mod_js_1.del)
|
|
35
|
+
.case('get', mod_js_1.get)
|
|
36
|
+
.case('post', mod_js_1.post)
|
|
37
|
+
.case('put', mod_js_1.put)
|
|
38
|
+
.case('form', mod_js_1.form)
|
|
39
|
+
.done()
|
|
40
|
+
.expect(core_1.CheckingError.new(ERROR_MSG));
|
|
41
|
+
return validate ? (0, mod_js_1.merge_request)(METHOD(url, data), (0, mod_js_1.input_validate)(validate)) : METHOD(url, data);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { zod } from '@chzky/core';
|
|
2
2
|
import type { RequestInterceptor } from '../../../mod.js';
|
|
3
|
-
|
|
3
|
+
import { CheckingError } from '@chzky/core';
|
|
4
|
+
/** ## `input_validate` : 使用`zod`对输入的data数据进行解析校验(使用`zod.parse`)
|
|
4
5
|
+ 该方法会返回一个`RequestInterceptor`拦截器,如果校验失败会返回`CheckingError`
|
|
5
6
|
@param schema `zod.Schema<unknown>` - 校验规则
|
|
6
7
|
@param [checktype] `'data' | 'params'` - 校验类型,如果是`get`请求则默认为`params`,其他类型的请求默认为`data`,
|
|
7
8
|
@type `Interceptor` - `Request`
|
|
8
|
-
@category
|
|
9
|
+
@category Helper
|
|
9
10
|
*/
|
|
10
|
-
export declare function
|
|
11
|
+
export declare function input_validate(schema: zod.Schema<unknown>, checktype?: 'data' | 'params'): RequestInterceptor<CheckingError>;
|
|
11
12
|
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/request/input.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/request/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAM,MAAM,aAAa,CAAA;AAI/C;;;;;;EAME;AACF,wBAAgB,cAAc,CAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAC3B,kBAAkB,CAAC,aAAa,CAAC,CAYnC"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
3
|
+
exports.input_validate = input_validate;
|
|
4
|
+
const core_1 = require("@chzky/core");
|
|
5
5
|
const ERROR_MSG = `param checktype must be 'data' or 'params'`;
|
|
6
|
-
/** ## `
|
|
6
|
+
/** ## `input_validate` : 使用`zod`对输入的data数据进行解析校验(使用`zod.parse`)
|
|
7
7
|
+ 该方法会返回一个`RequestInterceptor`拦截器,如果校验失败会返回`CheckingError`
|
|
8
8
|
@param schema `zod.Schema<unknown>` - 校验规则
|
|
9
9
|
@param [checktype] `'data' | 'params'` - 校验类型,如果是`get`请求则默认为`params`,其他类型的请求默认为`data`,
|
|
10
10
|
@type `Interceptor` - `Request`
|
|
11
|
-
@category
|
|
11
|
+
@category Helper
|
|
12
12
|
*/
|
|
13
|
-
function
|
|
14
|
-
return
|
|
13
|
+
function input_validate(schema, checktype) {
|
|
14
|
+
return conf => {
|
|
15
15
|
conf.timeout;
|
|
16
|
-
const ct = checktype || conf.method
|
|
16
|
+
const ct = checktype || conf.method === 'get' ? 'params' : 'data';
|
|
17
17
|
if (ct !== 'data' && ct !== 'params')
|
|
18
|
-
return
|
|
18
|
+
return core_1.CheckingError.err(ERROR_MSG);
|
|
19
19
|
try {
|
|
20
|
-
schema.parse(ct
|
|
21
|
-
return (0,
|
|
20
|
+
schema.parse(ct === 'data' ? conf.data : conf.params);
|
|
21
|
+
return (0, core_1.Ok)();
|
|
22
22
|
}
|
|
23
23
|
catch (e) {
|
|
24
|
-
return
|
|
24
|
+
return core_1.CheckingError.err(e);
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/request/mod.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/request/mod.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
|
|
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./input.js"), exports);
|
|
17
|
+
__exportStar(require("./baseConf.js"), exports); /* 提供基础配置 */
|
|
18
|
+
__exportStar(require("./factors.js"), exports); /* 请求集合 */
|
|
19
|
+
__exportStar(require("./input.js"), exports); /* 请求参数校验 */
|
|
20
|
+
__exportStar(require("./process.js"), exports); /* 进度 */
|
|
21
|
+
__exportStar(require("./RESTful.js"), exports); /* 提供restful配置 */
|
|
22
|
+
__exportStar(require("./wait.js"), exports); /* 请求等待 */
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RequestInterceptor } from '../../../mod.js';
|
|
2
|
+
/** ## `upload_process` : 上传进度查询(浏览器专属)
|
|
3
|
+
+ 进度只保留两位小数,即`xx.yy%`
|
|
4
|
+
+ 存在两种情况,进度不可计算时,返回`-1%`
|
|
5
|
+
+ `event.lengthComputable`为`false` (长度不可计算)
|
|
6
|
+
+ `event.total`为`0`(数据的总大小不可知)
|
|
7
|
+
*/
|
|
8
|
+
export default function upload_process(progress: (percent: number) => void): RequestInterceptor<never>;
|
|
9
|
+
/** ## `download_process` : 下载进度查询(浏览器专属)
|
|
10
|
+
+ 进度只保留两位小数,即`xx.yy%`
|
|
11
|
+
+ 存在两种情况,进度不可计算时,返回`-1%`
|
|
12
|
+
+ `event.lengthComputable`为`false` (长度不可计算)
|
|
13
|
+
+ `event.total`为`0`(数据的总大小不可知)
|
|
14
|
+
*/
|
|
15
|
+
export declare function download_process(progress: (percent: number) => void): RequestInterceptor<never>;
|
|
16
|
+
//# sourceMappingURL=process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/request/process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;;;EAKE;AACF,MAAM,CAAC,OAAO,UAAU,cAAc,CACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACjC,kBAAkB,CAAC,KAAK,CAAC,CAS3B;AAED;;;;;EAKE;AACF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAU/F"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = upload_process;
|
|
4
|
+
exports.download_process = download_process;
|
|
5
|
+
const core_1 = require("@chzky/core");
|
|
6
|
+
/** ## `upload_process` : 上传进度查询(浏览器专属)
|
|
7
|
+
+ 进度只保留两位小数,即`xx.yy%`
|
|
8
|
+
+ 存在两种情况,进度不可计算时,返回`-1%`
|
|
9
|
+
+ `event.lengthComputable`为`false` (长度不可计算)
|
|
10
|
+
+ `event.total`为`0`(数据的总大小不可知)
|
|
11
|
+
*/
|
|
12
|
+
function upload_process(progress) {
|
|
13
|
+
return conf => {
|
|
14
|
+
conf.onUploadProgress = event => {
|
|
15
|
+
if (event.lengthComputable && event.total) {
|
|
16
|
+
progress(Number.parseFloat(((event.loaded * 100) / event.total).toFixed(2)));
|
|
17
|
+
}
|
|
18
|
+
else
|
|
19
|
+
progress(-1);
|
|
20
|
+
};
|
|
21
|
+
return (0, core_1.Ok)();
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** ## `download_process` : 下载进度查询(浏览器专属)
|
|
25
|
+
+ 进度只保留两位小数,即`xx.yy%`
|
|
26
|
+
+ 存在两种情况,进度不可计算时,返回`-1%`
|
|
27
|
+
+ `event.lengthComputable`为`false` (长度不可计算)
|
|
28
|
+
+ `event.total`为`0`(数据的总大小不可知)
|
|
29
|
+
*/
|
|
30
|
+
function download_process(progress) {
|
|
31
|
+
return conf => {
|
|
32
|
+
conf.onDownloadProgress = event => {
|
|
33
|
+
if (event.lengthComputable && event.total) {
|
|
34
|
+
progress(Number.parseFloat(((event.loaded * 100) / event.total).toFixed(2)));
|
|
35
|
+
}
|
|
36
|
+
else
|
|
37
|
+
progress(-1);
|
|
38
|
+
};
|
|
39
|
+
return (0, core_1.Ok)();
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PositiveInteger } from '@chzky/core';
|
|
2
|
+
import type { RequestInterceptor } from '../../../mod.js';
|
|
3
|
+
/** ## `wait` : 等待指定时间后继续执行请求
|
|
4
|
+
@param time `PositiveInteger<N>` - The time to wait in milliseconds (must be a positive integer)@type `Interceptor` - `Request`
|
|
5
|
+
@returns A Promise that resolves after the specified time delay
|
|
6
|
+
@category Helper
|
|
7
|
+
*/
|
|
8
|
+
export declare function wait<N extends number>(time: PositiveInteger<N>): RequestInterceptor<never>;
|
|
9
|
+
//# sourceMappingURL=wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/request/wait.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAIzD;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAO1F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wait = wait;
|
|
4
|
+
const core_1 = require("@chzky/core");
|
|
5
|
+
/** ## `wait` : 等待指定时间后继续执行请求
|
|
6
|
+
@param time `PositiveInteger<N>` - The time to wait in milliseconds (must be a positive integer)@type `Interceptor` - `Request`
|
|
7
|
+
@returns A Promise that resolves after the specified time delay
|
|
8
|
+
@category Helper
|
|
9
|
+
*/
|
|
10
|
+
function wait(time) {
|
|
11
|
+
return () => new Promise(res => {
|
|
12
|
+
setTimeout(() => {
|
|
13
|
+
res((0, core_1.Ok)());
|
|
14
|
+
}, time);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ResponseInterceptor } from '../../../mod.js';
|
|
2
|
+
/** ## blob2url : `blob`转化成`url`,赋值在`src`字段上
|
|
3
|
+
+ 一般用于
|
|
4
|
+
1. 图片显示
|
|
5
|
+
2. 显示PDF
|
|
6
|
+
@returns [`revoke`:用于取消对`ObjectURL`对象的引用, `interceptor`:拦截器]
|
|
7
|
+
@type `Interceptor` - `Response`
|
|
8
|
+
@category Helper
|
|
9
|
+
*/
|
|
10
|
+
export declare function blob2url(): [() => void, ResponseInterceptor<Blob, string, never>];
|
|
11
|
+
//# sourceMappingURL=blobToUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blobToUrl.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/blobToUrl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAI1D;;;;;;;EAOE;AACF,wBAAgB,QAAQ,IAAI,CAAC,MAAM,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAWjF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.blob2url = blob2url;
|
|
4
|
+
const core_1 = require("@chzky/core");
|
|
5
|
+
/** ## blob2url : `blob`转化成`url`,赋值在`src`字段上
|
|
6
|
+
+ 一般用于
|
|
7
|
+
1. 图片显示
|
|
8
|
+
2. 显示PDF
|
|
9
|
+
@returns [`revoke`:用于取消对`ObjectURL`对象的引用, `interceptor`:拦截器]
|
|
10
|
+
@type `Interceptor` - `Response`
|
|
11
|
+
@category Helper
|
|
12
|
+
*/
|
|
13
|
+
function blob2url() {
|
|
14
|
+
let object_url;
|
|
15
|
+
return [
|
|
16
|
+
() => {
|
|
17
|
+
if (object_url)
|
|
18
|
+
URL.revokeObjectURL(object_url);
|
|
19
|
+
},
|
|
20
|
+
blob => {
|
|
21
|
+
object_url = URL.createObjectURL(blob);
|
|
22
|
+
return (0, core_1.Ok)(object_url);
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/mod.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/mod.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|
|
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./blobToUrl.js"), exports); /* blob赋值src */
|
|
18
|
+
__exportStar(require("./openLink.js"), exports); /* blob下载 */
|
|
19
|
+
__exportStar(require("./output.js"), exports); /* 输出校验|输出map */
|
|
20
|
+
__exportStar(require("./pick.js"), exports); /* 字段提取 */
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ResponseInterceptor } from '../../../mod.js';
|
|
2
|
+
/** ### `open_link` : 将获取到的blob文件直接进行下载
|
|
3
|
+
@tips : 只能在浏览器环境下使用,在非浏览器环境下会直接返回blob
|
|
4
|
+
@type `Interceptor` - `Response`
|
|
5
|
+
@category Helper
|
|
6
|
+
*/
|
|
7
|
+
export declare function open_link(name: string): ResponseInterceptor<Blob, Blob, never>;
|
|
8
|
+
//# sourceMappingURL=openLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openLink.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/openLink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAI1D;;;;EAIE;AACF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAY9E"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.open_link = open_link;
|
|
27
|
+
const dntShim = __importStar(require("../../../_dnt.shims.js"));
|
|
28
|
+
const core_1 = require("@chzky/core");
|
|
29
|
+
/** ### `open_link` : 将获取到的blob文件直接进行下载
|
|
30
|
+
@tips : 只能在浏览器环境下使用,在非浏览器环境下会直接返回blob
|
|
31
|
+
@type `Interceptor` - `Response`
|
|
32
|
+
@category Helper
|
|
33
|
+
*/
|
|
34
|
+
function open_link(name) {
|
|
35
|
+
return blob => {
|
|
36
|
+
var _a;
|
|
37
|
+
if (typeof dntShim.dntGlobalThis === 'undefined' || !((_a = dntShim.dntGlobalThis) === null || _a === void 0 ? void 0 : _a.document))
|
|
38
|
+
return (0, core_1.Ok)(blob);
|
|
39
|
+
// biome-ignore lint/suspicious/noExplicitAny: <>
|
|
40
|
+
const a = dntShim.dntGlobalThis.document.createElement('a');
|
|
41
|
+
a.href = URL.createObjectURL(blob);
|
|
42
|
+
a.download = name;
|
|
43
|
+
a.click();
|
|
44
|
+
a.remove();
|
|
45
|
+
return (0, core_1.Ok)(blob);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
|
+
import type { Fn, Result, zod } from '@chzky/core';
|
|
1
2
|
import type { ResponseInterceptor } from '../../../mod.js';
|
|
2
|
-
import {
|
|
3
|
-
/** ### `
|
|
4
|
-
|
|
3
|
+
import { CheckingError } from '@chzky/core';
|
|
4
|
+
/** ### `output_validate` : 对输出类型进行类型校验
|
|
5
|
+
+ 会自动将放回类型进行校验(使用`zod.parse`),如果校验失败,则返回 `CheckingError`
|
|
6
|
+
@type `Interceptor` - `Response`
|
|
7
|
+
@category Helper
|
|
8
|
+
*/
|
|
9
|
+
export declare function output_validate<T>(schema: zod.Schema<T>): ResponseInterceptor<unknown, zod.infer<typeof schema>, CheckingError>;
|
|
10
|
+
/** ## `response_map` : 对返回类型进行`map`操作
|
|
11
|
+
+ 用于`AxiosResponse`的业务场景映射
|
|
12
|
+
+ 用于返回数据映射
|
|
13
|
+
@category ResponseInterceptor
|
|
14
|
+
*/
|
|
15
|
+
export declare function response_map<T, R, E>(fn: Fn<T, Result<R, E>>): ResponseInterceptor<T, R, E>;
|
|
5
16
|
//# sourceMappingURL=output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAM,MAAM,aAAa,CAAA;AAE/C;;;;EAIE;AACF,wBAAgB,eAAe,CAAC,CAAC,EAChC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GACnB,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,aAAa,CAAC,CAQvE;AAED;;;;EAIE;AACF,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAE3F"}
|
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
exports.output_validate = output_validate;
|
|
4
|
+
exports.response_map = response_map;
|
|
5
|
+
const core_1 = require("@chzky/core");
|
|
6
|
+
/** ### `output_validate` : 对输出类型进行类型校验
|
|
7
|
+
+ 会自动将放回类型进行校验(使用`zod.parse`),如果校验失败,则返回 `CheckingError`
|
|
8
|
+
@type `Interceptor` - `Response`
|
|
9
|
+
@category Helper
|
|
10
|
+
*/
|
|
11
|
+
function output_validate(schema) {
|
|
12
|
+
return response => {
|
|
8
13
|
try {
|
|
9
|
-
return (0,
|
|
14
|
+
return (0, core_1.Ok)(schema.parse(response));
|
|
10
15
|
}
|
|
11
16
|
catch (e) {
|
|
12
|
-
return
|
|
17
|
+
return core_1.CheckingError.err(e);
|
|
13
18
|
}
|
|
14
19
|
};
|
|
15
20
|
}
|
|
21
|
+
/** ## `response_map` : 对返回类型进行`map`操作
|
|
22
|
+
+ 用于`AxiosResponse`的业务场景映射
|
|
23
|
+
+ 用于返回数据映射
|
|
24
|
+
@category ResponseInterceptor
|
|
25
|
+
*/
|
|
26
|
+
function response_map(fn) {
|
|
27
|
+
return response => fn(response);
|
|
28
|
+
}
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
import type { ResponseInterceptor } from '../../../mod.js';
|
|
2
2
|
import type { AxiosResponse } from 'axios';
|
|
3
|
-
|
|
3
|
+
type AxiosResponseKey = 'data' | 'status' | 'statusText' | 'headers' | 'config' | 'request';
|
|
4
|
+
/** ### `pick` : 提取`Axios`请求返回字段
|
|
5
|
+
+ 默认返回`data`字段
|
|
4
6
|
一般来说axios返回的数据是一个AxiosResponse对象,而我们只需要其中的data字段作为业务数据需要的字段
|
|
7
|
+
@example Usage
|
|
8
|
+
```ts
|
|
9
|
+
const mock_reqwest = Reqwest.new().conf({ baseURL: 'https://jsonplaceholder.typicode.com/todos/' })
|
|
10
|
+
|
|
11
|
+
const result = await mock_reqwest
|
|
12
|
+
.request(get('/1'))
|
|
13
|
+
.response(pick<{ userId: number; id: number; title: string; completed: boolean }>('data'))
|
|
14
|
+
.dispatch()
|
|
15
|
+
|
|
16
|
+
assert.not(result.unwrap().completed)
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
@type `Interceptor` - `Response`
|
|
20
|
+
@category Helper
|
|
5
21
|
*/
|
|
6
|
-
export declare function pick<T = never>(key
|
|
22
|
+
export declare function pick<T = never>(key: AxiosResponseKey): ResponseInterceptor<AxiosResponse, T extends never ? AxiosResponse[typeof key] : T, never>;
|
|
23
|
+
export {};
|
|
7
24
|
//# sourceMappingURL=pick.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/pick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../../../src/lib/helper/response/pick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAI1C,KAAK,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE3F;;;;;;;;;;;;;;;;;EAiBE;AACF,wBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,EAC7B,GAAG,EAAE,gBAAgB,GACnB,mBAAmB,CAAC,aAAa,EAAE,CAAC,SAAS,KAAK,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAK5F"}
|
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pick = pick;
|
|
4
|
-
const
|
|
5
|
-
/** ### `pick` :
|
|
4
|
+
const core_1 = require("@chzky/core");
|
|
5
|
+
/** ### `pick` : 提取`Axios`请求返回字段
|
|
6
|
+
+ 默认返回`data`字段
|
|
6
7
|
一般来说axios返回的数据是一个AxiosResponse对象,而我们只需要其中的data字段作为业务数据需要的字段
|
|
8
|
+
@example Usage
|
|
9
|
+
```ts
|
|
10
|
+
const mock_reqwest = Reqwest.new().conf({ baseURL: 'https://jsonplaceholder.typicode.com/todos/' })
|
|
11
|
+
|
|
12
|
+
const result = await mock_reqwest
|
|
13
|
+
.request(get('/1'))
|
|
14
|
+
.response(pick<{ userId: number; id: number; title: string; completed: boolean }>('data'))
|
|
15
|
+
.dispatch()
|
|
16
|
+
|
|
17
|
+
assert.not(result.unwrap().completed)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
@type `Interceptor` - `Response`
|
|
21
|
+
@category Helper
|
|
7
22
|
*/
|
|
8
|
-
function pick(key
|
|
9
|
-
return
|
|
10
|
-
|
|
23
|
+
function pick(key) {
|
|
24
|
+
return response => {
|
|
25
|
+
if (key in response && Object.hasOwn(response, key))
|
|
26
|
+
return (0, core_1.Ok)(response[key]);
|
|
27
|
+
throw new Error(`Key '${key}' does not exist on AxiosResponse`);
|
|
11
28
|
};
|
|
12
29
|
}
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./useCancel.js"), exports);
|
|
18
|
-
__exportStar(require("./useLoading.js"), exports);
|
|
17
|
+
__exportStar(require("./useCancel.js"), exports); /* 取消控制 */
|
|
18
|
+
__exportStar(require("./useLoading.js"), exports); /* loading控制 */
|
|
@@ -1,4 +1,34 @@
|
|
|
1
1
|
import type { RequestInterceptor } from '../../../mod.js';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { AbortedError, PromiseOr, Result } from '@chzky/core';
|
|
3
|
+
type CancelInterceptor = [
|
|
4
|
+
AbortController,
|
|
5
|
+
{
|
|
6
|
+
request: RequestInterceptor<AbortedError>;
|
|
7
|
+
response: <O>(response: O) => PromiseOr<Result<O, AbortedError>>;
|
|
8
|
+
}
|
|
9
|
+
];
|
|
10
|
+
/** ### `cancel` : 允许取消操作
|
|
11
|
+
+ 在请求时取消,会直接取消请求
|
|
12
|
+
+ 在响应时取消,会直接丢弃响应值
|
|
13
|
+
@example Usage
|
|
14
|
+
```ts
|
|
15
|
+
const [abort_controler, interceptor] = cancel()
|
|
16
|
+
|
|
17
|
+
const reqwest = mock_reqwest.clone().request(wait(2000), get('/1')).use(interceptor)
|
|
18
|
+
|
|
19
|
+
const mock_cause = 'mock abort'
|
|
20
|
+
abort_controler.abort(mock_cause)
|
|
21
|
+
|
|
22
|
+
const result = await reqwest.dispatch()
|
|
23
|
+
|
|
24
|
+
const error = result.unwrap_err()
|
|
25
|
+
assert(error.instance_of(AbortedError))
|
|
26
|
+
assert.equal(error.cause, mock_cause)
|
|
27
|
+
```
|
|
28
|
+
@returns [ `abort_controler` - 控制取消的`AbortController` , `interceptor` - 拦截器 ]
|
|
29
|
+
@type `Interceptor`
|
|
30
|
+
@category Helper
|
|
31
|
+
*/
|
|
32
|
+
export declare function cancel(control?: AbortController): CancelInterceptor;
|
|
33
|
+
export {};
|
|
4
34
|
//# sourceMappingURL=useCancel.d.ts.map
|