@chzky/reqwest 0.0.1 → 0.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/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/mod.d.ts +1 -1
- package/esm/lib/mod.d.ts.map +1 -1
- package/esm/lib/mod.js +1 -1
- package/esm/lib/reqwest/class.d.ts +116 -78
- package/esm/lib/reqwest/class.d.ts.map +1 -1
- package/esm/lib/reqwest/class.js +175 -1
- package/esm/lib/reqwest/core.d.ts +5 -0
- package/esm/lib/reqwest/core.d.ts.map +1 -1
- package/esm/lib/reqwest/core.js +154 -244
- package/esm/lib/reqwest/factor.d.ts +2 -2
- package/esm/lib/reqwest/factor.d.ts.map +1 -1
- package/esm/lib/reqwest/factor.js +32 -1
- package/esm/lib/reqwest/interface.d.ts +166 -42
- package/esm/lib/reqwest/interface.d.ts.map +1 -1
- package/esm/lib/reqwest/interface.js +1 -1
- package/esm/lib/reqwest/mod.d.ts +1 -1
- package/esm/lib/reqwest/mod.d.ts.map +1 -1
- package/esm/lib/reqwest/mod.js +2 -2
- package/esm/lib/{helper → utils}/mod.d.ts +1 -0
- package/esm/lib/utils/mod.d.ts.map +1 -0
- package/esm/lib/{helper → utils}/mod.js +1 -0
- package/esm/lib/utils/other/mod.d.ts +2 -0
- package/esm/lib/utils/other/mod.d.ts.map +1 -0
- package/esm/lib/utils/other/mod.js +1 -0
- package/esm/lib/utils/other/sseParse.d.ts +34 -0
- package/esm/lib/utils/other/sseParse.d.ts.map +1 -0
- package/esm/lib/utils/other/sseParse.js +42 -0
- package/{script/lib/helper → esm/lib/utils}/request/RESTful.d.ts +43 -11
- package/esm/lib/utils/request/RESTful.d.ts.map +1 -0
- package/esm/lib/utils/request/RESTful.js +129 -0
- package/esm/lib/utils/request/baseConf.d.ts +22 -0
- package/esm/lib/utils/request/baseConf.d.ts.map +1 -0
- package/esm/lib/utils/request/baseConf.js +37 -0
- package/esm/lib/utils/request/factors.d.ts +30 -0
- package/esm/lib/utils/request/factors.d.ts.map +1 -0
- package/esm/lib/utils/request/factors.js +39 -0
- package/esm/lib/{helper → utils}/request/input.d.ts +4 -3
- package/esm/lib/utils/request/input.d.ts.map +1 -0
- package/esm/lib/utils/request/input.js +24 -0
- package/esm/lib/utils/request/mod.d.ts +7 -0
- package/esm/lib/utils/request/mod.d.ts.map +1 -0
- package/esm/lib/utils/request/mod.js +6 -0
- package/esm/lib/utils/request/process.d.ts +16 -0
- package/esm/lib/utils/request/process.d.ts.map +1 -0
- package/esm/lib/utils/request/process.js +37 -0
- package/esm/lib/utils/request/wait.d.ts +10 -0
- package/esm/lib/utils/request/wait.d.ts.map +1 -0
- package/esm/lib/utils/request/wait.js +14 -0
- package/esm/lib/utils/response/blobToUrl.d.ts +10 -0
- package/esm/lib/utils/response/blobToUrl.d.ts.map +1 -0
- package/esm/lib/utils/response/blobToUrl.js +21 -0
- package/esm/lib/utils/response/mod.d.ts +5 -0
- package/esm/lib/utils/response/mod.d.ts.map +1 -0
- package/esm/lib/utils/response/mod.js +4 -0
- package/esm/lib/utils/response/openLink.d.ts +7 -0
- package/esm/lib/utils/response/openLink.d.ts.map +1 -0
- package/esm/lib/utils/response/openLink.js +20 -0
- package/esm/lib/utils/response/output.d.ts +16 -0
- package/esm/lib/utils/response/output.d.ts.map +1 -0
- package/esm/lib/utils/response/output.js +24 -0
- package/esm/lib/utils/response/pick.d.ts +23 -0
- package/esm/lib/utils/response/pick.d.ts.map +1 -0
- package/esm/lib/utils/response/pick.js +25 -0
- package/esm/lib/utils/use/mod.d.ts.map +1 -0
- package/esm/lib/utils/use/mod.js +2 -0
- package/esm/lib/utils/use/useCancel.d.ts +33 -0
- package/esm/lib/utils/use/useCancel.d.ts.map +1 -0
- package/esm/lib/utils/use/useCancel.js +41 -0
- package/esm/lib/utils/use/useLoading.d.ts +34 -0
- package/esm/lib/utils/use/useLoading.d.ts.map +1 -0
- package/esm/lib/utils/use/useLoading.js +57 -0
- 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/mod.d.ts +1 -1
- package/script/lib/mod.d.ts.map +1 -1
- package/script/lib/mod.js +1 -1
- package/script/lib/reqwest/class.d.ts +116 -78
- package/script/lib/reqwest/class.d.ts.map +1 -1
- package/script/lib/reqwest/class.js +135 -25
- package/script/lib/reqwest/core.d.ts +5 -0
- package/script/lib/reqwest/core.d.ts.map +1 -1
- package/script/lib/reqwest/core.js +119 -23
- package/script/lib/reqwest/factor.d.ts +2 -2
- package/script/lib/reqwest/factor.d.ts.map +1 -1
- package/script/lib/reqwest/factor.js +2 -2
- package/script/lib/reqwest/interface.d.ts +160 -11
- package/script/lib/reqwest/interface.d.ts.map +1 -1
- package/script/lib/reqwest/mod.d.ts +1 -1
- package/script/lib/reqwest/mod.d.ts.map +1 -1
- package/script/lib/{helper → utils}/mod.d.ts +1 -0
- package/script/lib/utils/mod.d.ts.map +1 -0
- package/script/lib/{helper → utils}/mod.js +1 -0
- package/script/lib/utils/other/mod.d.ts +2 -0
- package/script/lib/utils/other/mod.d.ts.map +1 -0
- package/script/lib/{helper/response → utils/other}/mod.js +1 -2
- package/script/lib/utils/other/sseParse.d.ts +34 -0
- package/script/lib/utils/other/sseParse.d.ts.map +1 -0
- package/script/lib/utils/other/sseParse.js +45 -0
- package/{esm/lib/helper → script/lib/utils}/request/RESTful.d.ts +43 -11
- package/script/lib/utils/request/RESTful.d.ts.map +1 -0
- package/script/lib/utils/request/RESTful.js +140 -0
- package/script/lib/utils/request/baseConf.d.ts +22 -0
- package/script/lib/utils/request/baseConf.d.ts.map +1 -0
- package/script/lib/utils/request/baseConf.js +42 -0
- package/script/lib/utils/request/factors.d.ts +30 -0
- package/script/lib/utils/request/factors.d.ts.map +1 -0
- package/script/lib/utils/request/factors.js +42 -0
- package/script/lib/{helper → utils}/request/input.d.ts +4 -3
- package/script/lib/utils/request/input.d.ts.map +1 -0
- package/script/lib/{helper → utils}/request/input.js +10 -10
- package/script/lib/utils/request/mod.d.ts +7 -0
- package/script/lib/utils/request/mod.d.ts.map +1 -0
- package/script/lib/utils/request/mod.js +22 -0
- package/script/lib/utils/request/process.d.ts +16 -0
- package/script/lib/utils/request/process.d.ts.map +1 -0
- package/script/lib/utils/request/process.js +41 -0
- package/script/lib/utils/request/wait.d.ts +10 -0
- package/script/lib/utils/request/wait.d.ts.map +1 -0
- package/script/lib/utils/request/wait.js +17 -0
- package/script/lib/utils/response/blobToUrl.d.ts +10 -0
- package/script/lib/utils/response/blobToUrl.d.ts.map +1 -0
- package/script/lib/utils/response/blobToUrl.js +24 -0
- package/script/lib/utils/response/mod.d.ts +5 -0
- package/script/lib/utils/response/mod.d.ts.map +1 -0
- package/script/lib/{helper/request → utils/response}/mod.js +4 -3
- package/script/lib/utils/response/openLink.d.ts +7 -0
- package/script/lib/utils/response/openLink.d.ts.map +1 -0
- package/script/lib/{helper/use/useLoading.js → utils/response/openLink.js} +17 -22
- package/script/lib/utils/response/output.d.ts +16 -0
- package/script/lib/utils/response/output.d.ts.map +1 -0
- package/script/lib/utils/response/output.js +28 -0
- package/script/lib/utils/response/pick.d.ts +23 -0
- package/script/lib/utils/response/pick.d.ts.map +1 -0
- package/script/lib/utils/response/pick.js +28 -0
- package/script/lib/utils/use/mod.d.ts.map +1 -0
- package/script/lib/{helper → utils}/use/mod.js +2 -2
- package/script/lib/utils/use/useCancel.d.ts +33 -0
- package/script/lib/utils/use/useCancel.d.ts.map +1 -0
- package/script/lib/utils/use/useCancel.js +44 -0
- package/script/lib/utils/use/useLoading.d.ts +34 -0
- package/script/lib/utils/use/useLoading.d.ts.map +1 -0
- package/script/lib/utils/use/useLoading.js +60 -0
- package/esm/lib/helper/mod.d.ts.map +0 -1
- package/esm/lib/helper/request/RESTful.d.ts.map +0 -1
- package/esm/lib/helper/request/RESTful.js +0 -1
- package/esm/lib/helper/request/baseConf.d.ts +0 -15
- package/esm/lib/helper/request/baseConf.d.ts.map +0 -1
- package/esm/lib/helper/request/baseConf.js +0 -1
- package/esm/lib/helper/request/input.d.ts.map +0 -1
- package/esm/lib/helper/request/input.js +0 -1
- package/esm/lib/helper/request/mod.d.ts +0 -4
- package/esm/lib/helper/request/mod.d.ts.map +0 -1
- package/esm/lib/helper/request/mod.js +0 -3
- package/esm/lib/helper/response/mod.d.ts +0 -3
- package/esm/lib/helper/response/mod.d.ts.map +0 -1
- package/esm/lib/helper/response/mod.js +0 -2
- package/esm/lib/helper/response/output.d.ts +0 -5
- package/esm/lib/helper/response/output.d.ts.map +0 -1
- package/esm/lib/helper/response/output.js +0 -1
- package/esm/lib/helper/response/pick.d.ts +0 -7
- package/esm/lib/helper/response/pick.d.ts.map +0 -1
- package/esm/lib/helper/response/pick.js +0 -1
- package/esm/lib/helper/use/mod.d.ts.map +0 -1
- package/esm/lib/helper/use/mod.js +0 -2
- package/esm/lib/helper/use/useCancel.d.ts +0 -4
- package/esm/lib/helper/use/useCancel.d.ts.map +0 -1
- package/esm/lib/helper/use/useCancel.js +0 -1
- package/esm/lib/helper/use/useLoading.d.ts +0 -15
- package/esm/lib/helper/use/useLoading.d.ts.map +0 -1
- package/esm/lib/helper/use/useLoading.js +0 -1
- package/script/lib/helper/mod.d.ts.map +0 -1
- package/script/lib/helper/request/RESTful.d.ts.map +0 -1
- package/script/lib/helper/request/RESTful.js +0 -86
- package/script/lib/helper/request/baseConf.d.ts +0 -15
- package/script/lib/helper/request/baseConf.d.ts.map +0 -1
- package/script/lib/helper/request/baseConf.js +0 -27
- package/script/lib/helper/request/input.d.ts.map +0 -1
- package/script/lib/helper/request/mod.d.ts +0 -4
- package/script/lib/helper/request/mod.d.ts.map +0 -1
- package/script/lib/helper/response/mod.d.ts +0 -3
- package/script/lib/helper/response/mod.d.ts.map +0 -1
- package/script/lib/helper/response/output.d.ts +0 -5
- package/script/lib/helper/response/output.d.ts.map +0 -1
- package/script/lib/helper/response/output.js +0 -15
- package/script/lib/helper/response/pick.d.ts +0 -7
- package/script/lib/helper/response/pick.d.ts.map +0 -1
- package/script/lib/helper/response/pick.js +0 -12
- package/script/lib/helper/use/mod.d.ts.map +0 -1
- package/script/lib/helper/use/useCancel.d.ts +0 -4
- package/script/lib/helper/use/useCancel.d.ts.map +0 -1
- package/script/lib/helper/use/useCancel.js +0 -15
- package/script/lib/helper/use/useLoading.d.ts +0 -15
- package/script/lib/helper/use/useLoading.d.ts.map +0 -1
- /package/esm/lib/{helper → utils}/use/mod.d.ts +0 -0
- /package/script/lib/{helper → utils}/use/mod.d.ts +0 -0
|
@@ -8,39 +8,56 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
12
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
13
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
14
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
15
|
+
return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
16
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
17
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
18
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
19
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
20
|
+
function fulfill(value) { resume("next", value); }
|
|
21
|
+
function reject(value) { resume("throw", value); }
|
|
22
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
23
|
+
};
|
|
11
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.ws_reqwest = exports.see_reqwest = void 0;
|
|
12
26
|
exports.normal_dispatch = normal_dispatch;
|
|
13
27
|
exports.request_interceptor_run = request_interceptor_run;
|
|
14
28
|
exports.response_interceptor_run = response_interceptor_run;
|
|
15
|
-
|
|
16
|
-
const
|
|
29
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: < core file should ignore any type > */
|
|
30
|
+
const core_1 = require("@chzky/core");
|
|
17
31
|
const axios_1 = require("axios");
|
|
32
|
+
/** 正常的dispatch */
|
|
18
33
|
function normal_dispatch() {
|
|
19
34
|
const { resolve, promise } = Promise.withResolvers();
|
|
20
35
|
/** request_interceptor */
|
|
21
|
-
this.
|
|
22
|
-
yield request_interceptor_run(conf, this.
|
|
36
|
+
this.internal_axios.interceptors.request.use((conf) => __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
yield request_interceptor_run(conf, this.interceptors_req);
|
|
23
38
|
return conf;
|
|
24
39
|
}));
|
|
25
40
|
/** response_interceptor */
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
41
|
+
this.internal_axios.interceptors.response.use((r) => r /* 2xx 范围内的状态码都会触发该函数。 */, core_1.throwing /* 超出 2xx 范围的状态码都会触发该函数。 */);
|
|
42
|
+
this.internal_axios({})
|
|
28
43
|
.then((res) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
const result = yield response_interceptor_run(res, this.
|
|
30
|
-
return (0,
|
|
44
|
+
const result = yield response_interceptor_run(res, this.interceptors_res);
|
|
45
|
+
return (0, core_1.Ok)(result);
|
|
31
46
|
}))
|
|
32
47
|
.then(resolve, (e) => {
|
|
33
|
-
/*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
resolve(e instanceof
|
|
40
|
-
? e
|
|
48
|
+
/* 异常的可能情况
|
|
49
|
+
1. interceptors.request的异常
|
|
50
|
+
1.1 CanceledError - 请求终止错误
|
|
51
|
+
2. interceptors.response超出200~300的code
|
|
52
|
+
3. interceptors.response执行过程中的异常:<返回Err类型,或是执行过程中直接throw>
|
|
53
|
+
*/
|
|
54
|
+
resolve(e instanceof core_1.AnyError
|
|
55
|
+
? (0, core_1.Err)(e)
|
|
41
56
|
: e instanceof axios_1.CanceledError
|
|
42
|
-
?
|
|
43
|
-
:
|
|
57
|
+
? core_1.AbortedError.err(e.message || 'Request has been canceled')
|
|
58
|
+
: e instanceof axios_1.AxiosError
|
|
59
|
+
? core_1.AnyHowError.err(e.message)
|
|
60
|
+
: core_1.UnexpectedError.err(e));
|
|
44
61
|
});
|
|
45
62
|
return promise;
|
|
46
63
|
}
|
|
@@ -49,10 +66,10 @@ function request_interceptor_run(conf, arrs) {
|
|
|
49
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
67
|
for (const fn of arrs) {
|
|
51
68
|
const res = yield Promise.resolve(fn(conf));
|
|
52
|
-
if ((0,
|
|
53
|
-
res.unwrap(); /*
|
|
69
|
+
if ((0, core_1.is_err)(res) || (0, core_1.is_ok)(res))
|
|
70
|
+
res.unwrap(); /* 解包 */
|
|
54
71
|
else
|
|
55
|
-
throw
|
|
72
|
+
throw core_1.CheckingError.new('RequestInterceptor must return Err<E> or Ok<void>');
|
|
56
73
|
}
|
|
57
74
|
});
|
|
58
75
|
}
|
|
@@ -62,11 +79,90 @@ function response_interceptor_run(res, arrs) {
|
|
|
62
79
|
let result = res;
|
|
63
80
|
for (const fn of arrs) {
|
|
64
81
|
result = yield Promise.resolve(fn(result));
|
|
65
|
-
if ((0,
|
|
82
|
+
if ((0, core_1.is_err)(result) || (0, core_1.is_ok)(result))
|
|
66
83
|
result = result.unwrap(); /* 解包 */
|
|
67
84
|
else
|
|
68
|
-
throw
|
|
85
|
+
throw core_1.CheckingError.new('ResponseInterceptor must return Err<E> or Ok<O>');
|
|
69
86
|
}
|
|
70
87
|
return result;
|
|
71
88
|
});
|
|
72
89
|
}
|
|
90
|
+
const is_aborteder = (err) => err instanceof DOMException && err.name === 'AbortError';
|
|
91
|
+
const cleanup_reader = (readerr) => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
|
+
/**
|
|
93
|
+
1. 数据读取完毕
|
|
94
|
+
2. gen被关闭读取
|
|
95
|
+
3. aborted
|
|
96
|
+
*/
|
|
97
|
+
try {
|
|
98
|
+
yield (readerr === null || readerr === void 0 ? void 0 : readerr.cancel());
|
|
99
|
+
}
|
|
100
|
+
catch (_) {
|
|
101
|
+
// ignore exception
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
/** sse请求转Generator */
|
|
105
|
+
const see_reqwest = (conf) => {
|
|
106
|
+
const { url, abort, method = 'GET' } = conf;
|
|
107
|
+
let response;
|
|
108
|
+
let reader;
|
|
109
|
+
const init_reader = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
110
|
+
var _a;
|
|
111
|
+
if (reader !== undefined)
|
|
112
|
+
return;
|
|
113
|
+
response = yield fetch(url, {
|
|
114
|
+
method,
|
|
115
|
+
headers: {
|
|
116
|
+
Accept: 'text/event-stream',
|
|
117
|
+
'Cache-Control': 'no-cache',
|
|
118
|
+
},
|
|
119
|
+
signal: abort ? (abort instanceof AbortController ? abort.signal : abort) : undefined,
|
|
120
|
+
});
|
|
121
|
+
const lreader = (_a = response.body) === null || _a === void 0 ? void 0 : _a.getReader();
|
|
122
|
+
if (lreader === undefined)
|
|
123
|
+
throw core_1.None;
|
|
124
|
+
reader = lreader;
|
|
125
|
+
});
|
|
126
|
+
function start_sse() {
|
|
127
|
+
return __asyncGenerator(this, arguments, function* start_sse_1() {
|
|
128
|
+
try {
|
|
129
|
+
yield __await(init_reader());
|
|
130
|
+
}
|
|
131
|
+
catch (_) {
|
|
132
|
+
return yield __await(void 0);
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
while (true) {
|
|
136
|
+
const { done, value } = yield __await(reader.read());
|
|
137
|
+
if (done)
|
|
138
|
+
break;
|
|
139
|
+
yield yield __await(value);
|
|
140
|
+
}
|
|
141
|
+
return yield __await(void 0);
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (!is_aborteder(error))
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
finally {
|
|
148
|
+
yield __await(cleanup_reader(reader));
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
return start_sse();
|
|
153
|
+
};
|
|
154
|
+
exports.see_reqwest = see_reqwest;
|
|
155
|
+
const default_deserialize = (data) => JSON.parse(data.data);
|
|
156
|
+
const default_serialize = (data) => JSON.stringify(data);
|
|
157
|
+
const ws_reqwest = (conf) => {
|
|
158
|
+
const { url, abort, deserialize = default_deserialize, serialize = default_serialize } = conf;
|
|
159
|
+
const subject = core_1.rjx_ws.webSocket({ url, serializer: serialize, deserializer: deserialize });
|
|
160
|
+
if (abort instanceof AbortController) {
|
|
161
|
+
abort === null || abort === void 0 ? void 0 : abort.signal.addEventListener('abort', subject.complete.bind(subject));
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
abort === null || abort === void 0 ? void 0 : abort.addEventListener('abort', subject.complete.bind(subject));
|
|
165
|
+
}
|
|
166
|
+
return subject;
|
|
167
|
+
};
|
|
168
|
+
exports.ws_reqwest = ws_reqwest;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/** 工厂函数,省去类型声明的步骤 */
|
|
2
|
-
import type { RequestInterceptor,
|
|
2
|
+
import type { MergeErrors, RequestInterceptor, ReqwestInterceptor, ResponseInterceptor } from './interface.js';
|
|
3
3
|
/** ### `merge_request` : 工厂函数 of `Reqwest-request`
|
|
4
4
|
+ 将多个request拦截器合并成一个拦截器
|
|
5
5
|
*/
|
|
6
|
-
export declare function merge_request<Interceptors extends RequestInterceptor<
|
|
6
|
+
export declare function merge_request<Interceptors extends RequestInterceptor<unknown>[]>(...interceptors: Interceptors): RequestInterceptor<MergeErrors<Interceptors>>;
|
|
7
7
|
/** ### `merge_response` : 工厂函数 of `Reqwest-response`
|
|
8
8
|
+ 将多个response拦截器合并成一个拦截器
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factor.d.ts","sourceRoot":"","sources":["../../../src/lib/reqwest/factor.ts"],"names":[],"mappings":"AAAA,qBAAqB;
|
|
1
|
+
{"version":3,"file":"factor.d.ts","sourceRoot":"","sources":["../../../src/lib/reqwest/factor.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.merge_request = merge_request;
|
|
14
14
|
exports.merge_response = merge_response;
|
|
15
15
|
exports.merge_reqwest = merge_reqwest;
|
|
16
|
-
const
|
|
16
|
+
const core_1 = require("@chzky/core");
|
|
17
17
|
const core_js_1 = require("./core.js");
|
|
18
18
|
/** ### `merge_request` : 工厂函数 of `Reqwest-request`
|
|
19
19
|
+ 将多个request拦截器合并成一个拦截器
|
|
@@ -21,7 +21,7 @@ const core_js_1 = require("./core.js");
|
|
|
21
21
|
function merge_request(...interceptors) {
|
|
22
22
|
return (conf) => __awaiter(this, void 0, void 0, function* () {
|
|
23
23
|
yield (0, core_js_1.request_interceptor_run)(conf, interceptors);
|
|
24
|
-
return (0,
|
|
24
|
+
return (0, core_1.Ok)();
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
function merge_response(...interceptor) {
|
|
@@ -1,23 +1,172 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
1
|
+
import type { AsyncResult, Copy, Fn, PromiseOr, Result, rjx_ws, UnexpectedError, zod } from '@chzky/core';
|
|
2
|
+
import type { AxiosResponse, CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios';
|
|
3
|
+
type WebSocketMessage = string | ArrayBuffer | Blob | ArrayBufferView;
|
|
4
|
+
/** ### `ReqwestWsConfig` : WebSocket连接配置 */
|
|
5
|
+
export type ReqwestWsConfig<A, B> = {
|
|
6
|
+
/** WebSocket连接地址 */
|
|
7
|
+
url: string;
|
|
8
|
+
/** 终止控制器 */
|
|
9
|
+
abort?: AbortController | AbortSignal;
|
|
10
|
+
/** 反序列化函数 , 将获取的数据反序列化为`B`类型
|
|
11
|
+
@default `(data)=>JSON.parse(data.data)` */
|
|
12
|
+
deserialize?: Fn<MessageEvent, B>;
|
|
13
|
+
/** 序列化函数 , 将发送的数据序列化为`WebSocketMessage`类型
|
|
14
|
+
@default `(data)=>JSON.stringify(data)` */
|
|
15
|
+
serialize?: Fn<A, WebSocketMessage>;
|
|
16
|
+
};
|
|
17
|
+
export type ExtendWebSocketSubject<A, B> = {
|
|
18
|
+
next: (data: A) => void;
|
|
19
|
+
subscribe: Fn<Fn<B, void>, void>;
|
|
20
|
+
} & {
|
|
21
|
+
complete?: Fn<void, void>;
|
|
22
|
+
error?: Fn<Fn<unknown, void>, void>;
|
|
23
|
+
next?: Fn<Fn<B, void>, void>;
|
|
24
|
+
} & rjx_ws.WebSocketSubject<unknown>;
|
|
25
|
+
/** ### `ReqwestSSEConfig` : SSE连接配置 */
|
|
26
|
+
export type ReqwestSSEConfig = {
|
|
27
|
+
/** SSE连接地址 */
|
|
28
|
+
url: string;
|
|
29
|
+
/** 终止控制器 */
|
|
30
|
+
abort?: AbortController | AbortSignal;
|
|
31
|
+
/** SSE连接方法 : 默认`get` */
|
|
32
|
+
method?: 'GET' | 'POST';
|
|
33
|
+
/** 解码器 : 默认不使用,直接返回`Uint8Array` */
|
|
34
|
+
decode?: {
|
|
35
|
+
decode: (input: Uint8Array<ArrayBuffer>) => string;
|
|
36
|
+
};
|
|
37
|
+
/** 数据校验器,用于校验解码后的数据 : 默认不使用,直接返回解码后的数据 */
|
|
38
|
+
validator?: zod.ZodSchema<unknown>;
|
|
39
|
+
};
|
|
4
40
|
/** ### `RequestInterceptor` : 请求拦截器 | 返回`Ok()` or `Err(E)`
|
|
5
|
-
+ Ok()
|
|
6
|
-
+ Err(E)
|
|
41
|
+
+ `Ok()`表示通过拦截器 , 会运行下一个拦截器
|
|
42
|
+
+ `Err(E)`表示拦截器拦截 , 会直接短路返回`Err(E)`
|
|
7
43
|
*/
|
|
8
44
|
export type RequestInterceptor<E = never> = (conf: InternalAxiosRequestConfig<unknown>) => PromiseOr<Result<void, E>>;
|
|
9
45
|
/** ### `ResponseInterceptor` : 响应拦截器 | 返回`Ok(O)` or `Err(E)`
|
|
10
|
-
+ Ok(O) 表示通过拦截器 , 会自动解包并将值传递给下一个拦截器
|
|
11
|
-
+ Err(E)
|
|
46
|
+
+ `Ok(O)` 表示通过拦截器 , 会自动解包并将值传递给下一个拦截器
|
|
47
|
+
+ `Err(E)`表示拦截器拦截 , 会直接短路返回`Err(E)`
|
|
12
48
|
*/
|
|
13
49
|
export type ResponseInterceptor<O = AxiosResponse<unknown, unknown>, OO = AxiosResponse<unknown, unknown>, EE = never> = (response: O) => PromiseOr<Result<OO, EE>>;
|
|
14
|
-
/** ### `ReqwestInterceptor` :
|
|
50
|
+
/** ### `ReqwestInterceptor` : `请求-响应拦截器` | 分成响应拦截和请求拦截 */
|
|
15
51
|
export interface ReqwestInterceptor<O, E, OO = O, EE = never> {
|
|
16
52
|
request: RequestInterceptor<E>;
|
|
17
53
|
response: ResponseInterceptor<O, OO, EE>;
|
|
18
54
|
}
|
|
19
|
-
export type MergeErrors<T extends
|
|
20
|
-
|
|
21
|
-
|
|
55
|
+
export type MergeErrors<T extends unknown[]> = T extends [
|
|
56
|
+
RequestInterceptor<infer E>,
|
|
57
|
+
...infer Rest
|
|
58
|
+
] ? E | MergeErrors<Rest> : never;
|
|
59
|
+
type FinalResult<Interceptors extends ResponseInterceptor<unknown, unknown, unknown>[], CurrentOutput = AxiosResponse<unknown>, CurrentError = UnexpectedError> = Interceptors extends [
|
|
60
|
+
infer First,
|
|
61
|
+
...infer Rest extends ResponseInterceptor<unknown, unknown, unknown>[]
|
|
62
|
+
] ? First extends ResponseInterceptor<CurrentOutput, infer NextOutput, infer NextError> ? FinalResult<Rest, NextOutput, NextError | CurrentError> : never : Result<CurrentOutput, CurrentError>;
|
|
63
|
+
export type ResponseResult<O, E, ER, Interceptors extends ResponseInterceptor<unknown, unknown, unknown>[]> = ReqwestInterface<FinalResult<Interceptors, O, ER> extends Result<infer O, unknown> ? O : never, E, FinalResult<Interceptors, O, ER> extends Result<unknown, infer E> ? E : never>;
|
|
64
|
+
export interface ReqwestInterface<O = AxiosResponse<unknown, unknown>, E = never, ER = UnexpectedError> extends Copy {
|
|
65
|
+
/** ### `conf` : 更新配置
|
|
66
|
+
@example Usage
|
|
67
|
+
```ts
|
|
68
|
+
const conf = { baseURL: 'https://jsonplaceholder.typicode.com/todos/' }
|
|
69
|
+
const mock_reqwest = Reqwest.new().conf(conf)
|
|
70
|
+
mock_reqwest.dispatch() // curl https://jsonplaceholder.typicode.com/todos/
|
|
71
|
+
```
|
|
72
|
+
*/
|
|
73
|
+
conf(conf: CreateAxiosDefaults): ReqwestInterface<O, E, ER>;
|
|
74
|
+
/** ### `dispatch` : 发送请求,获取请求结果
|
|
75
|
+
@example Usage
|
|
76
|
+
```ts
|
|
77
|
+
const conf = { baseURL: 'https://jsonplaceholder.typicode.com/todos/' }
|
|
78
|
+
const mock_reqwest = Reqwest.new().conf(conf)
|
|
79
|
+
mock_reqwest.dispatch() // dispatch to get https://jsonplaceholder.typicode.com/todos/
|
|
80
|
+
```
|
|
81
|
+
*/
|
|
82
|
+
dispatch(): AsyncResult<O, E | ER>;
|
|
83
|
+
/** ### `request` : 增加请求拦截器,拦截器会按顺序执行
|
|
84
|
+
+ 该方法会返回一个新的`Reqwest`,并且与原`Reqwest`保持独立 */
|
|
85
|
+
request<I extends RequestInterceptor<unknown>[]>(...interceptors: I): ReqwestInterface<O, MergeErrors<I> | E, ER>;
|
|
86
|
+
/** ### `response` : 增加响应拦截器,拦截器会按顺序执行
|
|
87
|
+
+ 该方法会返回一个新的`Reqwest`,并且与原`Reqwest`保持独立 */
|
|
88
|
+
response<OO, EE>(interceptor: ResponseInterceptor<O, OO, EE>): ReqwestInterface<OO, E, EE | ER>;
|
|
89
|
+
response<OO, EE, O2, E2>(...interceptor: [ResponseInterceptor<O, OO, EE>, ResponseInterceptor<OO, O2, E2>]): ReqwestInterface<O2, E, E2 | EE | ER>;
|
|
90
|
+
response<OO, EE, O2, E2, O3, E3>(...interceptor: [
|
|
91
|
+
ResponseInterceptor<O, OO, EE>,
|
|
92
|
+
ResponseInterceptor<OO, O2, E2>,
|
|
93
|
+
ResponseInterceptor<O2, O3, E3>
|
|
94
|
+
]): ReqwestInterface<O3, E, E3 | E2 | EE | ER>;
|
|
95
|
+
response<OO, EE, O2, E2, O3, E3, O4, E4>(...interceptor: [
|
|
96
|
+
ResponseInterceptor<O, OO, EE>,
|
|
97
|
+
ResponseInterceptor<OO, O2, E2>,
|
|
98
|
+
ResponseInterceptor<O2, O3, E3>,
|
|
99
|
+
ResponseInterceptor<O3, O4, E4>
|
|
100
|
+
]): ReqwestInterface<O4, E, E4 | E3 | E2 | EE | ER>;
|
|
101
|
+
response<OO, EE, O2, E2, O3, E3, O4, E4, O5, E5>(...interceptor: [
|
|
102
|
+
ResponseInterceptor<O, OO, EE>,
|
|
103
|
+
ResponseInterceptor<OO, O2, E2>,
|
|
104
|
+
ResponseInterceptor<O2, O3, E3>,
|
|
105
|
+
ResponseInterceptor<O3, O4, E4>
|
|
106
|
+
]): ReqwestInterface<O5, E, E5 | E4 | E3 | E2 | EE | ER>;
|
|
107
|
+
response<OO, EE, O2, E2, O3, E3, O4, E4, O5, E5, O6, E6>(...interceptor: [
|
|
108
|
+
ResponseInterceptor<O, OO, EE>,
|
|
109
|
+
ResponseInterceptor<OO, O2, E2>,
|
|
110
|
+
ResponseInterceptor<O2, O3, E3>,
|
|
111
|
+
ResponseInterceptor<O3, O4, E4>,
|
|
112
|
+
ResponseInterceptor<O4, O5, E5>,
|
|
113
|
+
ResponseInterceptor<O5, O6, E6>
|
|
114
|
+
]): ReqwestInterface<O6, E, E6 | E5 | E4 | E3 | E2 | EE | ER>;
|
|
115
|
+
response<OO, EE, O2, E2, O3, E3, O4, E4, O5, E5, O6, E6, O7, E7>(...interceptor: [
|
|
116
|
+
ResponseInterceptor<O, OO, EE>,
|
|
117
|
+
ResponseInterceptor<OO, O2, E2>,
|
|
118
|
+
ResponseInterceptor<O2, O3, E3>,
|
|
119
|
+
ResponseInterceptor<O3, O4, E4>,
|
|
120
|
+
ResponseInterceptor<O4, O5, E5>,
|
|
121
|
+
ResponseInterceptor<O5, O6, E6>,
|
|
122
|
+
ResponseInterceptor<O6, O7, E7>
|
|
123
|
+
]): ReqwestInterface<O7, E, E7 | E6 | E5 | E4 | E3 | E2 | EE | ER>;
|
|
124
|
+
response<OO, EE, O2, E2, O3, E3, O4, E4, O5, E5, O6, E6, O7, E7, O8, E8>(...interceptor: [
|
|
125
|
+
ResponseInterceptor<O, OO, EE>,
|
|
126
|
+
ResponseInterceptor<OO, O2, E2>,
|
|
127
|
+
ResponseInterceptor<O2, O3, E3>,
|
|
128
|
+
ResponseInterceptor<O3, O4, E4>,
|
|
129
|
+
ResponseInterceptor<O4, O5, E5>,
|
|
130
|
+
ResponseInterceptor<O5, O6, E6>,
|
|
131
|
+
ResponseInterceptor<O6, O7, E7>,
|
|
132
|
+
ResponseInterceptor<O7, O8, E8>
|
|
133
|
+
]): ReqwestInterface<O8, E, E8 | E7 | E6 | E5 | E4 | E3 | E2 | EE | ER>;
|
|
134
|
+
response<OO, EE, O2, E2, O3, E3, O4, E4, O5, E5, O6, E6, O7, E7, O8, E8, O9, E9>(...interceptor: [
|
|
135
|
+
ResponseInterceptor<O, OO, EE>,
|
|
136
|
+
ResponseInterceptor<OO, O2, E2>,
|
|
137
|
+
ResponseInterceptor<O2, O3, E3>,
|
|
138
|
+
ResponseInterceptor<O3, O4, E4>,
|
|
139
|
+
ResponseInterceptor<O4, O5, E5>,
|
|
140
|
+
ResponseInterceptor<O5, O6, E6>,
|
|
141
|
+
ResponseInterceptor<O6, O7, E7>,
|
|
142
|
+
ResponseInterceptor<O7, O8, E8>,
|
|
143
|
+
ResponseInterceptor<O8, O9, E9>
|
|
144
|
+
]): ReqwestInterface<O9, E, E9 | E8 | E7 | E6 | E5 | E4 | E3 | E2 | EE | ER>;
|
|
145
|
+
/** ### `use` : 增加`请求-响应拦截器`,拦截器会按顺序执行
|
|
146
|
+
+ 该方法会返回一个新的`Reqwest`,并且与原`Reqwest`保持独立
|
|
147
|
+
@example Usage - cancel
|
|
148
|
+
```ts
|
|
149
|
+
const conf = { baseURL: 'https://jsonplaceholder.typicode.com/todos/' }
|
|
150
|
+
const mock_reqwest = Reqwest.new().conf(conf)
|
|
151
|
+
|
|
152
|
+
const [abort_controler, interceptor] = cancel() // 可取消的请求
|
|
153
|
+
|
|
154
|
+
const reqwest = mock_reqwest.clone().request(wait(2000), get('/1')).use(interceptor)
|
|
155
|
+
|
|
156
|
+
const mock_cause = 'mock abort'
|
|
157
|
+
abort_controler.abort(mock_cause)
|
|
158
|
+
|
|
159
|
+
const result = await reqwest.dispatch()
|
|
160
|
+
|
|
161
|
+
const error = result.unwrap_err()
|
|
162
|
+
assert(error.instance_of(AbortedError))
|
|
163
|
+
assert.equal(error.cause, mock_cause)
|
|
164
|
+
```
|
|
165
|
+
*/
|
|
166
|
+
use<OO, EC, EE>(interceptor: ReqwestInterceptor<O, EC, OO, EE>): ReqwestInterface<OO, EC | E, EE | ER>;
|
|
167
|
+
/** ### `clone`
|
|
168
|
+
+ 实现{@link Copy}接口 : 生成一个全新的`Reqwest` */
|
|
169
|
+
clone(): ReqwestInterface<O, E, ER>;
|
|
170
|
+
}
|
|
22
171
|
export {};
|
|
23
172
|
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/lib/reqwest/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/lib/reqwest/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export type { RequestInterceptor, ReqwestInterceptor, ResponseInterceptor, } from './interface.js';
|
|
2
2
|
export * from './class.js';
|
|
3
3
|
export * from './factor.js';
|
|
4
4
|
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/lib/reqwest/mod.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/lib/reqwest/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,gBAAgB,CAAA;AAEvB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/mod.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA"}
|
|
@@ -14,6 +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("./other/mod.js"), exports);
|
|
17
18
|
__exportStar(require("./request/mod.js"), exports);
|
|
18
19
|
__exportStar(require("./response/mod.js"), exports);
|
|
19
20
|
__exportStar(require("./use/mod.js"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/other/mod.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
|
@@ -14,5 +14,4 @@ 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("./output.js"), exports);
|
|
17
|
+
__exportStar(require("./sseParse.js"), exports);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** `SSEMessageEvent` : 经典的SSE事件名
|
|
2
|
+
+ `message` : 默认事件(不写 event: 时就是它)
|
|
3
|
+
+ `open` : 连接建立后服务器推送的第一条欢迎消息
|
|
4
|
+
+ `ping` : 服务端保活
|
|
5
|
+
+ `update` : 数据增量更新
|
|
6
|
+
+ `error` : 服务端主动通知前端“出错了”
|
|
7
|
+
+ `close` : 服务端优雅关闭连接
|
|
8
|
+
*/
|
|
9
|
+
export type SSEMessageEvent = 'message' | 'open' | 'ping' | 'update' | 'error' | 'close';
|
|
10
|
+
export interface SSEMessage {
|
|
11
|
+
/** 数据 */
|
|
12
|
+
data: string;
|
|
13
|
+
/** 事件类型 */
|
|
14
|
+
event?: SSEMessageEvent | string;
|
|
15
|
+
/** 消息ID */
|
|
16
|
+
id?: string;
|
|
17
|
+
/** 重连时间(毫秒) */
|
|
18
|
+
retry?: number;
|
|
19
|
+
}
|
|
20
|
+
/** ## `parse_sse_data` : 解析[标准SSE格式](https://developer.mozilla.org/zh-CN/docs/Web/API/Server-sent_events/Using_server-sent_events)的数据
|
|
21
|
+
@example Usage
|
|
22
|
+
```ts
|
|
23
|
+
const generator = Reqwest.sse({
|
|
24
|
+
url: 'http://localhost:7788/api/ping/sse',
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
for await (const item of generator) {
|
|
28
|
+
const { data } = parse_sse_data(item)
|
|
29
|
+
assert(typeof data === 'string')
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
*/
|
|
33
|
+
export declare function parse_sse_data(data: string | Uint8Array): SSEMessage;
|
|
34
|
+
//# sourceMappingURL=sseParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sseParse.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/other/sseParse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAExF,MAAM,WAAW,UAAU;IAC1B,SAAS;IACT,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW;IACX,KAAK,CAAC,EAAE,eAAe,GAAG,MAAM,CAAA;IAChC,WAAW;IACX,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAGpE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parse_sse_data = parse_sse_data;
|
|
4
|
+
/** ## `parse_sse_data` : 解析[标准SSE格式](https://developer.mozilla.org/zh-CN/docs/Web/API/Server-sent_events/Using_server-sent_events)的数据
|
|
5
|
+
@example Usage
|
|
6
|
+
```ts
|
|
7
|
+
const generator = Reqwest.sse({
|
|
8
|
+
url: 'http://localhost:7788/api/ping/sse',
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
for await (const item of generator) {
|
|
12
|
+
const { data } = parse_sse_data(item)
|
|
13
|
+
assert(typeof data === 'string')
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
*/
|
|
17
|
+
function parse_sse_data(data) {
|
|
18
|
+
if (typeof data === 'string')
|
|
19
|
+
return parse_core(data);
|
|
20
|
+
return parse_core(new TextDecoder().decode(data));
|
|
21
|
+
}
|
|
22
|
+
const MSG_SPLIT = '\n';
|
|
23
|
+
const EVENT_LINE = 'event: ';
|
|
24
|
+
const ID_LINE = 'id: ';
|
|
25
|
+
const RETRY_LINE = 'retry: ';
|
|
26
|
+
const DATA_LINE = 'data: ';
|
|
27
|
+
function parse_core(str) {
|
|
28
|
+
const result = { data: '' };
|
|
29
|
+
const lines = str.split(MSG_SPLIT);
|
|
30
|
+
for (const line of lines) {
|
|
31
|
+
if (line.startsWith(DATA_LINE)) {
|
|
32
|
+
if (result.data.length === 0)
|
|
33
|
+
result.data += line.slice(DATA_LINE.length);
|
|
34
|
+
else
|
|
35
|
+
result.data += `\n${line.slice(DATA_LINE.length)}`;
|
|
36
|
+
}
|
|
37
|
+
if (line.startsWith(ID_LINE))
|
|
38
|
+
result.id = line.slice(ID_LINE.length);
|
|
39
|
+
if (line.startsWith(EVENT_LINE))
|
|
40
|
+
result.event = line.slice(EVENT_LINE.length);
|
|
41
|
+
if (line.startsWith(RETRY_LINE))
|
|
42
|
+
result.retry = Number(line.slice(RETRY_LINE.length));
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|