cantian-request 0.0.10 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.d.ts +1 -0
- package/dist/api.js +3 -0
- package/dist/api.js.map +1 -1
- package/dist/sse.js +45 -10
- package/dist/sse.js.map +1 -1
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export type ApiOptions = {
|
|
|
7
7
|
personateSub?: string;
|
|
8
8
|
source?: string;
|
|
9
9
|
locale?: string;
|
|
10
|
+
time?: string;
|
|
10
11
|
};
|
|
11
12
|
export declare const buildFetchParams: (options: ApiOptions) => [string, RequestInit];
|
|
12
13
|
export declare const api: (options: ApiOptions) => Promise<any>;
|
package/dist/api.js
CHANGED
|
@@ -18,6 +18,9 @@ export const buildFetchParams = (options) => {
|
|
|
18
18
|
if (options.locale) {
|
|
19
19
|
headers['x-locale'] = options.locale;
|
|
20
20
|
}
|
|
21
|
+
if (options.time) {
|
|
22
|
+
headers['x-time'] = options.time;
|
|
23
|
+
}
|
|
21
24
|
const body = data ? JSON.stringify(data) : undefined;
|
|
22
25
|
const url = `${basepath}${path}`;
|
|
23
26
|
const init = { headers, body, method };
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAc/E,MAAM,UAAU,GAAG,yBAAyB,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAmB,EAAyB,EAAE;IAC7E,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChH,MAAM,OAAO,GAAG;QACd,cAAc,EAAE,kBAAkB;QAClC,aAAa,EAAE,UAAU,GAAG,EAAE;QAC9B,YAAY,EAAE,UAAU,EAAE;KAC3B,CAAC;IACF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACvC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,aAAa,CAC9B,KAAK,EAAE,OAAmB,EAAE,EAAE;IAC5B,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,MAAmC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;AACH,CAAC,EACD,EAAE,WAAW,EAAE,EAAE,EAAE,CACpB,CAAC"}
|
package/dist/sse.js
CHANGED
|
@@ -1,13 +1,40 @@
|
|
|
1
1
|
import { createParser } from 'eventsource-parser';
|
|
2
2
|
import { createThrowHttpErrorFetch } from './basic.js';
|
|
3
|
+
const SSE_IDLE_TIMEOUT_MS = 30000;
|
|
4
|
+
const SSE_HEADERS_TIMEOUT_MS = 30000;
|
|
3
5
|
const basicSse = createThrowHttpErrorFetch();
|
|
6
|
+
const withHeadersTimeoutInit = (init, timeoutSignal) => {
|
|
7
|
+
return {
|
|
8
|
+
...init,
|
|
9
|
+
signal: init?.signal ? AbortSignal.any([init.signal, timeoutSignal]) : timeoutSignal,
|
|
10
|
+
};
|
|
11
|
+
};
|
|
4
12
|
export const sse = async function* (input, init) {
|
|
5
|
-
const
|
|
13
|
+
const headersTimeoutController = new AbortController();
|
|
14
|
+
const headersTimeoutId = setTimeout(() => {
|
|
15
|
+
headersTimeoutController.abort(new Error(`SSE headers timeout (${SSE_HEADERS_TIMEOUT_MS}ms)`));
|
|
16
|
+
}, SSE_HEADERS_TIMEOUT_MS);
|
|
17
|
+
let response;
|
|
18
|
+
try {
|
|
19
|
+
response = await basicSse(input, withHeadersTimeoutInit(init, headersTimeoutController.signal));
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
clearTimeout(headersTimeoutId);
|
|
23
|
+
}
|
|
6
24
|
if (!response.body) {
|
|
7
25
|
console.error(`FETCH_ERROR_NO_BODY`);
|
|
8
26
|
throw new Error('No body');
|
|
9
27
|
}
|
|
10
28
|
const reader = response.body.getReader();
|
|
29
|
+
let idleError;
|
|
30
|
+
let readStartedAt;
|
|
31
|
+
const idleCheckId = setInterval(() => {
|
|
32
|
+
if (!idleError && readStartedAt && Date.now() - readStartedAt >= SSE_IDLE_TIMEOUT_MS) {
|
|
33
|
+
const idleMs = Date.now() - readStartedAt;
|
|
34
|
+
idleError = new Error(`SSE idle timeout while waiting for data (${idleMs}ms >= ${SSE_IDLE_TIMEOUT_MS}ms)`);
|
|
35
|
+
void reader.cancel(idleError).catch(() => { });
|
|
36
|
+
}
|
|
37
|
+
}, 1000);
|
|
11
38
|
const pending = [];
|
|
12
39
|
let parserError;
|
|
13
40
|
const decoder = new TextDecoder();
|
|
@@ -19,16 +46,26 @@ export const sse = async function* (input, init) {
|
|
|
19
46
|
parserError = error;
|
|
20
47
|
},
|
|
21
48
|
});
|
|
22
|
-
let error;
|
|
23
49
|
try {
|
|
24
50
|
while (true) {
|
|
25
51
|
while (pending.length) {
|
|
26
52
|
yield pending.shift();
|
|
27
53
|
}
|
|
28
|
-
|
|
29
|
-
chunk = await reader.read();
|
|
54
|
+
readStartedAt = Date.now();
|
|
55
|
+
const chunk = await reader.read();
|
|
56
|
+
readStartedAt = undefined;
|
|
57
|
+
if (idleError) {
|
|
58
|
+
throw idleError;
|
|
59
|
+
}
|
|
30
60
|
const { value, done } = chunk;
|
|
31
61
|
if (done) {
|
|
62
|
+
const tail = decoder.decode();
|
|
63
|
+
if (tail) {
|
|
64
|
+
parser.feed(tail);
|
|
65
|
+
if (parserError) {
|
|
66
|
+
throw parserError;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
32
69
|
break;
|
|
33
70
|
}
|
|
34
71
|
parser.feed(decoder.decode(value, { stream: true }));
|
|
@@ -37,18 +74,16 @@ export const sse = async function* (input, init) {
|
|
|
37
74
|
}
|
|
38
75
|
}
|
|
39
76
|
}
|
|
40
|
-
|
|
41
|
-
|
|
77
|
+
finally {
|
|
78
|
+
clearInterval(idleCheckId);
|
|
42
79
|
try {
|
|
43
80
|
await reader.cancel();
|
|
44
81
|
}
|
|
45
82
|
catch { }
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
finally {
|
|
49
|
-
if (!error) {
|
|
83
|
+
try {
|
|
50
84
|
reader.releaseLock();
|
|
51
85
|
}
|
|
86
|
+
catch { }
|
|
52
87
|
}
|
|
53
88
|
};
|
|
54
89
|
//# sourceMappingURL=sse.js.map
|
package/dist/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
|