snapreq 0.0.9 → 0.0.11
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 +59 -5
- package/build/capabilities.d.ts +17 -17
- package/build/capabilities.d.ts.map +1 -1
- package/build/control.d.ts +12 -0
- package/build/control.d.ts.map +1 -0
- package/build/control.js +27 -0
- package/build/errors.d.ts +16 -16
- package/build/errors.d.ts.map +1 -1
- package/build/headers.d.ts +6 -6
- package/build/headers.d.ts.map +1 -1
- package/build/request.d.ts +15 -15
- package/build/request.d.ts.map +1 -1
- package/build/response.d.ts +27 -17
- package/build/response.d.ts.map +1 -1
- package/build/response.js +26 -2
- package/build/retry.d.ts +38 -37
- package/build/retry.d.ts.map +1 -1
- package/build/retry.js +40 -34
- package/build/snap-req.d.ts +116 -153
- package/build/snap-req.d.ts.map +1 -1
- package/build/snap-req.js +57 -102
- package/build/transports/fetch-transport.d.ts +10 -4
- package/build/transports/fetch-transport.d.ts.map +1 -1
- package/build/transports/fetch-transport.js +58 -12
- package/build/transports/fetch.d.ts.map +1 -1
- package/build/transports/node-transport.d.ts +23 -22
- package/build/transports/node-transport.d.ts.map +1 -1
- package/build/transports/node-transport.js +45 -10
- package/build/transports/proxy-bounce-transport.d.ts +4 -4
- package/build/transports/proxy-bounce-transport.d.ts.map +1 -1
- package/build/transports/select.d.ts +21 -21
- package/build/transports/select.d.ts.map +1 -1
- package/build/transports/xhr-transport.d.ts +2 -2
- package/build/transports/xhr-transport.d.ts.map +1 -1
- package/build/transports/xhr.d.ts.map +1 -1
- package/build/websocket/websocket-channel.d.ts +33 -22
- package/build/websocket/websocket-channel.d.ts.map +1 -1
- package/build/websocket/websocket-channel.js +27 -11
- package/build/websocket/websocket-client.d.ts +113 -71
- package/build/websocket/websocket-client.d.ts.map +1 -1
- package/build/websocket/websocket-client.js +142 -58
- package/build/websocket/websocket-connection.d.ts +19 -16
- package/build/websocket/websocket-connection.d.ts.map +1 -1
- package/build/websocket/websocket-connection.js +11 -3
- package/build/websocket.d.ts.map +1 -1
- package/package.json +8 -4
package/build/snap-req.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// @ts-check
|
|
2
|
-
import { SnapReqHttpError, SnapReqTimeoutError, SnapReqUnsupportedFeatureError } from "./errors.js";
|
|
2
|
+
import { SnapReqAbortError, SnapReqHttpError, SnapReqTimeoutError, SnapReqUnsupportedFeatureError } from "./errors.js";
|
|
3
3
|
import SnapReqHeaders from "./headers.js";
|
|
4
4
|
import { buildUrl, normalizeBody } from "./request.js";
|
|
5
5
|
import { normalizeRetryOptions, runWithRetry } from "./retry.js";
|
|
6
6
|
import { selectTransport } from "./transports/select.js";
|
|
7
|
+
import { runControlled } from "./control.js";
|
|
8
|
+
import { TimeoutError } from "awaitery/build/timeout.js";
|
|
7
9
|
/**
|
|
8
10
|
* @typedef {import("./request.js").CompressionEncoding} CompressionEncoding
|
|
9
11
|
*/
|
|
@@ -33,13 +35,6 @@ import { selectTransport } from "./transports/select.js";
|
|
|
33
35
|
* @property {boolean | import("./retry.js").RetryOptions} [retry] - Retry transient failures.
|
|
34
36
|
* @property {boolean} [throwOnError] - Throw `SnapReqHttpError` on non-2xx responses.
|
|
35
37
|
*/
|
|
36
|
-
/**
|
|
37
|
-
* @typedef {object} RequestTimeout
|
|
38
|
-
* @property {AbortSignal | undefined} signal - Signal to use for the request.
|
|
39
|
-
* @property {() => void} clear - Clears timeout resources.
|
|
40
|
-
* @property {(response: import("./response.js").default, request: NormalizedRequest) => import("./response.js").default} response - Attaches timeout handling to a response.
|
|
41
|
-
* @property {(error: unknown, request: NormalizedRequest) => unknown} error - Maps a thrown error.
|
|
42
|
-
*/
|
|
43
38
|
/**
|
|
44
39
|
* A cross-platform HTTP client with one API across Node, web, Expo and React
|
|
45
40
|
* Native. The right transport is chosen at runtime; features a platform cannot
|
|
@@ -115,83 +110,6 @@ export default class SnapReq {
|
|
|
115
110
|
credentials: options.credentials ?? this.credentials
|
|
116
111
|
};
|
|
117
112
|
}
|
|
118
|
-
/**
|
|
119
|
-
* @param {RequestOptions} options - Request options.
|
|
120
|
-
* @returns {RequestTimeout} - Timeout handling for one request attempt.
|
|
121
|
-
*/
|
|
122
|
-
_requestTimeout(options) {
|
|
123
|
-
const timeoutMs = options.timeoutMs ?? this.timeoutMs;
|
|
124
|
-
if (!timeoutMs || timeoutMs <= 0) {
|
|
125
|
-
return {
|
|
126
|
-
signal: options.signal,
|
|
127
|
-
clear: () => { },
|
|
128
|
-
response: (response) => response,
|
|
129
|
-
error: (error) => error
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
const timeoutController = new AbortController();
|
|
133
|
-
const composedSignal = this._composeSignal(options.signal, timeoutController.signal);
|
|
134
|
-
let timedOut = false;
|
|
135
|
-
const timer = setTimeout(() => {
|
|
136
|
-
timedOut = true;
|
|
137
|
-
timeoutController.abort();
|
|
138
|
-
}, timeoutMs);
|
|
139
|
-
if (typeof timer.unref === "function")
|
|
140
|
-
timer.unref();
|
|
141
|
-
const clear = () => {
|
|
142
|
-
clearTimeout(timer);
|
|
143
|
-
composedSignal.clear();
|
|
144
|
-
};
|
|
145
|
-
const toError = (error, request) => {
|
|
146
|
-
if (timedOut) {
|
|
147
|
-
return new SnapReqTimeoutError({
|
|
148
|
-
method: request.method,
|
|
149
|
-
url: request.url,
|
|
150
|
-
timeoutMs
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
return error;
|
|
154
|
-
};
|
|
155
|
-
return {
|
|
156
|
-
signal: composedSignal.signal,
|
|
157
|
-
clear,
|
|
158
|
-
response: (response, request) => {
|
|
159
|
-
if (response._bodyDone) {
|
|
160
|
-
clear();
|
|
161
|
-
return response;
|
|
162
|
-
}
|
|
163
|
-
response._onBodyDone = this._chainBodyDone(response._onBodyDone, clear);
|
|
164
|
-
response._mapBodyError = this._chainBodyError(response._mapBodyError, (error) => toError(error, request));
|
|
165
|
-
return response;
|
|
166
|
-
},
|
|
167
|
-
error: toError
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* @param {AbortSignal | undefined} callerSignal - Caller-supplied signal.
|
|
172
|
-
* @param {AbortSignal} timeoutSignal - Timeout signal.
|
|
173
|
-
* @returns {{signal: AbortSignal, clear: () => void}} - Signal that aborts when either source aborts.
|
|
174
|
-
*/
|
|
175
|
-
_composeSignal(callerSignal, timeoutSignal) {
|
|
176
|
-
if (!callerSignal)
|
|
177
|
-
return { signal: timeoutSignal, clear: () => { } };
|
|
178
|
-
const controller = new AbortController();
|
|
179
|
-
const abort = () => controller.abort();
|
|
180
|
-
if (callerSignal.aborted || timeoutSignal.aborted) {
|
|
181
|
-
controller.abort();
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
callerSignal.addEventListener("abort", abort, { once: true });
|
|
185
|
-
timeoutSignal.addEventListener("abort", abort, { once: true });
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
signal: controller.signal,
|
|
189
|
-
clear: () => {
|
|
190
|
-
callerSignal.removeEventListener("abort", abort);
|
|
191
|
-
timeoutSignal.removeEventListener("abort", abort);
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
113
|
/**
|
|
196
114
|
* @param {(() => void) | undefined} existing - Existing body-done callback.
|
|
197
115
|
* @param {() => void} next - Callback to add.
|
|
@@ -204,14 +122,6 @@ export default class SnapReq {
|
|
|
204
122
|
next();
|
|
205
123
|
};
|
|
206
124
|
}
|
|
207
|
-
/**
|
|
208
|
-
* @param {((error: unknown) => unknown) | undefined} existing - Existing error mapper.
|
|
209
|
-
* @param {(error: unknown) => unknown} next - Mapper to add.
|
|
210
|
-
* @returns {(error: unknown) => unknown} - Combined mapper.
|
|
211
|
-
*/
|
|
212
|
-
_chainBodyError(existing, next) {
|
|
213
|
-
return (error) => next(existing ? existing(error) : error);
|
|
214
|
-
}
|
|
215
125
|
/**
|
|
216
126
|
* Performs a request and buffers nothing eagerly — read the body via the
|
|
217
127
|
* returned response (`json()`, `text()`, `bytes()`). Retries transient
|
|
@@ -225,8 +135,18 @@ export default class SnapReq {
|
|
|
225
135
|
const retry = normalizeRetryOptions(options.retry ?? this.defaultRetry);
|
|
226
136
|
const body = normalizeBody(options.body, new SnapReqHeaders(options.headers));
|
|
227
137
|
const canRetry = retry && body.kind !== "stream";
|
|
228
|
-
const attempt = async () => this._requestWithTimeout(options, (request) => transport.performRequest(request));
|
|
229
|
-
|
|
138
|
+
const attempt = async (signal = options.signal) => this._requestWithTimeout({ ...options, signal }, (request) => transport.performRequest(request));
|
|
139
|
+
let response;
|
|
140
|
+
try {
|
|
141
|
+
response = canRetry
|
|
142
|
+
? await runWithRetry(attempt, /** @type {any} */ (retry), options.signal)
|
|
143
|
+
: await attempt();
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
if (options.signal?.aborted)
|
|
147
|
+
throw new SnapReqAbortError();
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
230
150
|
if (throwOnError && !response.ok)
|
|
231
151
|
throw await this._httpError(response, this._normalize(options));
|
|
232
152
|
return response;
|
|
@@ -258,16 +178,51 @@ export default class SnapReq {
|
|
|
258
178
|
* @returns {Promise<import("./response.js").default>} - Response with timeout handling attached.
|
|
259
179
|
*/
|
|
260
180
|
async _requestWithTimeout(options, performRequest) {
|
|
261
|
-
const
|
|
262
|
-
const
|
|
181
|
+
const timeoutMs = options.timeoutMs ?? this.timeoutMs;
|
|
182
|
+
const startedAt = Date.now();
|
|
183
|
+
/** @type {NormalizedRequest} */
|
|
184
|
+
let normalized = this._normalize(options);
|
|
263
185
|
try {
|
|
264
|
-
const response = await
|
|
265
|
-
|
|
186
|
+
const response = await runControlled({ timeoutMs, signal: options.signal }, async (signal) => {
|
|
187
|
+
normalized = this._normalize({ ...options, signal });
|
|
188
|
+
return await performRequest(normalized);
|
|
189
|
+
});
|
|
190
|
+
const mapBodyError = response._mapBodyError;
|
|
191
|
+
response._mapBodyError = (error) => {
|
|
192
|
+
if (options.signal?.aborted)
|
|
193
|
+
return new SnapReqAbortError();
|
|
194
|
+
return mapBodyError ? mapBodyError(error) : error;
|
|
195
|
+
};
|
|
196
|
+
if (timeoutMs && timeoutMs > 0 && !response._bodyDone) {
|
|
197
|
+
const remaining = Math.max(1, timeoutMs - (Date.now() - startedAt));
|
|
198
|
+
/** @type {() => void} */
|
|
199
|
+
let finish;
|
|
200
|
+
const bodyDone = new Promise((resolve) => { finish = () => resolve(undefined); });
|
|
201
|
+
response._onBodyDone = this._chainBodyDone(response._onBodyDone, finish);
|
|
202
|
+
void runControlled({ timeoutMs: remaining, signal: options.signal }, () => bodyDone).catch((error) => {
|
|
203
|
+
response._abortBody(this._requestControlError(error, normalized, timeoutMs, options.signal));
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return response;
|
|
266
207
|
}
|
|
267
208
|
catch (error) {
|
|
268
|
-
|
|
269
|
-
|
|
209
|
+
throw this._requestControlError(error, normalized, timeoutMs, options.signal);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* @param {unknown} error - Awaitery/transport error.
|
|
214
|
+
* @param {NormalizedRequest} request - Request metadata.
|
|
215
|
+
* @param {number | undefined} timeoutMs - Attempt timeout.
|
|
216
|
+
* @param {AbortSignal | undefined} callerSignal - Caller cancellation.
|
|
217
|
+
* @returns {unknown} - Stable public Snapreq error.
|
|
218
|
+
*/
|
|
219
|
+
_requestControlError(error, request, timeoutMs, callerSignal) {
|
|
220
|
+
if (callerSignal?.aborted)
|
|
221
|
+
return new SnapReqAbortError();
|
|
222
|
+
if (error instanceof TimeoutError && timeoutMs) {
|
|
223
|
+
return new SnapReqTimeoutError({ method: request.method, url: request.url, timeoutMs });
|
|
270
224
|
}
|
|
225
|
+
return error;
|
|
271
226
|
}
|
|
272
227
|
/**
|
|
273
228
|
* @param {string} path - Request path or absolute URL.
|
|
@@ -346,4 +301,4 @@ export default class SnapReq {
|
|
|
346
301
|
this._transport?.close?.();
|
|
347
302
|
}
|
|
348
303
|
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1yZXEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc25hcC1yZXEuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUNqRyxPQUFPLGNBQWMsTUFBTSxjQUFjLENBQUE7QUFDekMsT0FBTyxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBQyxNQUFNLFlBQVksQ0FBQTtBQUM5RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUE7QUFFdEQ7O0dBRUc7QUFFSDs7Ozs7Ozs7OztHQVVHO0FBRUg7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBTztJQUMxQjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxZQUFZLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEdBQUcsTUFBTSxFQUFDLEdBQUcsRUFBRTtRQUM3SSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQTtRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxD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
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1yZXEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc25hcC1yZXEuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUNwSCxPQUFPLGNBQWMsTUFBTSxjQUFjLENBQUE7QUFDekMsT0FBTyxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBQyxNQUFNLFlBQVksQ0FBQTtBQUM5RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUE7QUFFdEQ7O0dBRUc7QUFFSDs7Ozs7Ozs7OztHQVVHO0FBRUg7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBTztJQUMxQjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxZQUFZLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEdBQUcsTUFBTSxFQUFDLEdBQUcsRUFBRTtRQUM3SSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQTtRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFH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
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import SnapReqHeaders from "../headers.js";
|
|
2
|
+
import SnapReqResponse from "../response.js";
|
|
1
3
|
/**
|
|
2
4
|
* Transport backed by the `fetch` global. Works on web, Expo / React Native and
|
|
3
5
|
* Node 18+. It cannot open Unix sockets, present client certificates or
|
|
@@ -27,10 +29,14 @@ export default class FetchTransport {
|
|
|
27
29
|
* `ReadableStream` body for true streaming when present and otherwise buffers
|
|
28
30
|
* the whole body once so the stream interface stays identical everywhere.
|
|
29
31
|
* @param {Response} response - The fetch response.
|
|
30
|
-
* @
|
|
32
|
+
* @param {{cancel: (reason?: unknown) => void, onDone: () => void}} control - Body lifetime controls.
|
|
33
|
+
* @returns {AsyncIterable<Uint8Array> & {cancel?: (reason?: unknown) => void}} - The response body stream.
|
|
31
34
|
*/
|
|
32
|
-
_responseStream(response: Response
|
|
35
|
+
_responseStream(response: Response, control: {
|
|
36
|
+
cancel: (reason?: unknown) => void;
|
|
37
|
+
onDone: () => void;
|
|
38
|
+
}): AsyncIterable<Uint8Array> & {
|
|
39
|
+
cancel?: (reason?: unknown) => void;
|
|
40
|
+
};
|
|
33
41
|
}
|
|
34
|
-
import SnapReqResponse from "../response.js";
|
|
35
|
-
import SnapReqHeaders from "../headers.js";
|
|
36
42
|
//# sourceMappingURL=fetch-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-transport.d.ts","sourceRoot":"","sources":["../../src/transports/fetch-transport.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch-transport.d.ts","sourceRoot":"","sources":["../../src/transports/fetch-transport.js"],"names":[],"mappings":"AAIA,OAAO,cAAc,MAAM,eAAe,CAAA;AAC1C,OAAO,eAAe,MAAM,gBAAgB,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,0CAA0C;IAC1C,MAAM,KAAK,aAAa,IADV,MAAM,CAGnB;IAED,sFAAsF;IACtF,MAAM,CAAC,WAAW,IADJ,OAAO,CAGpB;IAED,8FAA8F;IAC9F,IAAI,YAAY,IADF,OAAO,oBAAoB,EAAE,qBAAqB,CAM/D;IAED;;;OAGG;IACG,cAAc,CAAC,OAAO,EAHjB,OAAO,gBAAgB,EAAE,iBAGR,GAFf,OAAO,CAAC,eAAe,CAAC,CAkEpC;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAHd,QAGc,GAFZ,cAAc,CAQ1B;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,QAAQ,EAJb,QAIa,EAAE,OAAO,EAHtB;QAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,IAAI,CAAA;KAGjC,GAFpB,aAAa,CAAC,UAAU,CAAC,GAAG;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAC,CAqD7E;CACF"}
|
|
@@ -39,8 +39,17 @@ export default class FetchTransport {
|
|
|
39
39
|
method: request.method,
|
|
40
40
|
headers: request.headers.toObject()
|
|
41
41
|
};
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
const bodyController = new AbortController();
|
|
43
|
+
const requestSignal = request.signal;
|
|
44
|
+
const forwardAbort = () => bodyController.abort(requestSignal?.reason);
|
|
45
|
+
const finishBodyControl = () => requestSignal?.removeEventListener("abort", forwardAbort);
|
|
46
|
+
if (requestSignal?.aborted) {
|
|
47
|
+
forwardAbort();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
requestSignal?.addEventListener("abort", forwardAbort, { once: true });
|
|
51
|
+
}
|
|
52
|
+
init.signal = bodyController.signal;
|
|
44
53
|
if (request.credentials)
|
|
45
54
|
init.credentials = request.credentials;
|
|
46
55
|
const body = request.body;
|
|
@@ -59,17 +68,26 @@ export default class FetchTransport {
|
|
|
59
68
|
fetchResponse = await fetch(request.url, init);
|
|
60
69
|
}
|
|
61
70
|
catch (error) {
|
|
71
|
+
requestSignal?.removeEventListener("abort", forwardAbort);
|
|
62
72
|
if (error instanceof Error && error.name === "AbortError")
|
|
63
73
|
throw new SnapReqAbortError();
|
|
64
74
|
throw error;
|
|
65
75
|
}
|
|
76
|
+
const responseStream = this._responseStream(fetchResponse, {
|
|
77
|
+
cancel: (reason) => {
|
|
78
|
+
bodyController.abort(reason);
|
|
79
|
+
finishBodyControl();
|
|
80
|
+
},
|
|
81
|
+
onDone: finishBodyControl
|
|
82
|
+
});
|
|
66
83
|
return new SnapReqResponse({
|
|
67
84
|
url: request.url,
|
|
68
85
|
method: request.method,
|
|
69
86
|
status: fetchResponse.status,
|
|
70
87
|
statusText: fetchResponse.statusText,
|
|
71
88
|
headers: this._responseHeaders(fetchResponse),
|
|
72
|
-
stream:
|
|
89
|
+
stream: responseStream,
|
|
90
|
+
cancelBody: (error) => responseStream.cancel?.(error)
|
|
73
91
|
});
|
|
74
92
|
}
|
|
75
93
|
/**
|
|
@@ -86,13 +104,16 @@ export default class FetchTransport {
|
|
|
86
104
|
* `ReadableStream` body for true streaming when present and otherwise buffers
|
|
87
105
|
* the whole body once so the stream interface stays identical everywhere.
|
|
88
106
|
* @param {Response} response - The fetch response.
|
|
89
|
-
* @
|
|
107
|
+
* @param {{cancel: (reason?: unknown) => void, onDone: () => void}} control - Body lifetime controls.
|
|
108
|
+
* @returns {AsyncIterable<Uint8Array> & {cancel?: (reason?: unknown) => void}} - The response body stream.
|
|
90
109
|
*/
|
|
91
|
-
_responseStream(response) {
|
|
110
|
+
_responseStream(response, control) {
|
|
92
111
|
const body = response.body;
|
|
93
112
|
if (body && typeof body.getReader === "function") {
|
|
94
|
-
|
|
95
|
-
|
|
113
|
+
/** @type {ReadableStreamDefaultReader<Uint8Array> | null} */
|
|
114
|
+
let reader = null;
|
|
115
|
+
const iterable = (async function* () {
|
|
116
|
+
reader = body.getReader();
|
|
96
117
|
try {
|
|
97
118
|
while (true) {
|
|
98
119
|
const { done, value } = await reader.read();
|
|
@@ -103,14 +124,39 @@ export default class FetchTransport {
|
|
|
103
124
|
}
|
|
104
125
|
}
|
|
105
126
|
finally {
|
|
106
|
-
reader
|
|
127
|
+
if (reader) {
|
|
128
|
+
try {
|
|
129
|
+
await reader.cancel();
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// The body may already be errored by an abort.
|
|
133
|
+
}
|
|
134
|
+
reader.releaseLock?.();
|
|
135
|
+
}
|
|
136
|
+
control.onDone();
|
|
107
137
|
}
|
|
108
138
|
})();
|
|
139
|
+
const cancellable = /** @type {AsyncIterable<Uint8Array> & {cancel: (reason?: unknown) => void}} */ ( /** @type {unknown} */(iterable));
|
|
140
|
+
cancellable.cancel = (reason) => {
|
|
141
|
+
if (reader)
|
|
142
|
+
void reader.cancel(reason);
|
|
143
|
+
else
|
|
144
|
+
void body.cancel(reason);
|
|
145
|
+
};
|
|
146
|
+
return cancellable;
|
|
109
147
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
148
|
+
const iterable = (async function* () {
|
|
149
|
+
try {
|
|
150
|
+
const buffer = await response.arrayBuffer();
|
|
151
|
+
yield new Uint8Array(buffer);
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
control.onDone();
|
|
155
|
+
}
|
|
113
156
|
})();
|
|
157
|
+
const cancellable = /** @type {AsyncIterable<Uint8Array> & {cancel: (reason?: unknown) => void}} */ ( /** @type {unknown} */(iterable));
|
|
158
|
+
cancellable.cancel = control.cancel;
|
|
159
|
+
return cancellable;
|
|
114
160
|
}
|
|
115
161
|
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtdHJhbnNwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zcG9ydHMvZmV0Y2gtdHJhbnNwb3J0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsOEJBQThCLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDOUUsT0FBTyxjQUFjLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sZUFBZSxNQUFNLGdCQUFnQixDQUFBO0FBRTVDOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBYztJQUNqQywwQ0FBMEM7SUFDMUMsTUFBTSxLQUFLLGFBQWE7UUFDdEIsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELHNGQUFzRjtJQUN0RixNQUFNLENBQUMsV0FBVztRQUNoQixPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsOEZBQThGO0lBQzlGLElBQUksWUFBWTtRQUNkLE9BQU8saUJBQWlCLENBQUM7WUFDdkIsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU87UUFDMUIsSUFBSSxPQUFPLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxlQUFlLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEUsTUFBTSxJQUFJLDhCQUE4QixDQUFDLEVBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBQ3JHLENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsTUFBTSxJQUFJLEdBQUc7WUFDWCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsT0FBTyxFQUFF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/transports/fetch.js"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/transports/fetch.js"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import SnapReqHeaders from "../headers.js";
|
|
2
|
+
import SnapReqResponse from "../response.js";
|
|
1
3
|
/**
|
|
2
4
|
* Full-featured transport backed by Node's `http`/`https` modules. Supports
|
|
3
5
|
* Unix sockets, client TLS, keep-alive, request-body compression, response
|
|
@@ -6,6 +8,25 @@
|
|
|
6
8
|
* transport selector only imports it when running on Node.
|
|
7
9
|
*/
|
|
8
10
|
export default class NodeTransport {
|
|
11
|
+
socketPath: string;
|
|
12
|
+
tls: {
|
|
13
|
+
ca?: string | Buffer;
|
|
14
|
+
cert?: string | Buffer;
|
|
15
|
+
key?: string | Buffer;
|
|
16
|
+
rejectUnauthorized?: boolean;
|
|
17
|
+
};
|
|
18
|
+
keepAlive: boolean;
|
|
19
|
+
/** @type {{http: any, https: any, zlib: any, stream: any} | null} */
|
|
20
|
+
_modules: {
|
|
21
|
+
http: any;
|
|
22
|
+
https: any;
|
|
23
|
+
zlib: any;
|
|
24
|
+
stream: any;
|
|
25
|
+
} | null;
|
|
26
|
+
/** @type {any} */
|
|
27
|
+
_httpAgent: any;
|
|
28
|
+
/** @type {any} */
|
|
29
|
+
_httpsAgent: any;
|
|
9
30
|
/** @returns {string} - Transport name. */
|
|
10
31
|
static get transportName(): string;
|
|
11
32
|
/** @returns {boolean} - Whether this transport can run in the current environment. */
|
|
@@ -26,25 +47,6 @@ export default class NodeTransport {
|
|
|
26
47
|
};
|
|
27
48
|
keepAlive?: boolean;
|
|
28
49
|
});
|
|
29
|
-
socketPath: string;
|
|
30
|
-
tls: {
|
|
31
|
-
ca?: string | Buffer;
|
|
32
|
-
cert?: string | Buffer;
|
|
33
|
-
key?: string | Buffer;
|
|
34
|
-
rejectUnauthorized?: boolean;
|
|
35
|
-
};
|
|
36
|
-
keepAlive: boolean;
|
|
37
|
-
/** @type {{http: any, https: any, zlib: any, stream: any} | null} */
|
|
38
|
-
_modules: {
|
|
39
|
-
http: any;
|
|
40
|
-
https: any;
|
|
41
|
-
zlib: any;
|
|
42
|
-
stream: any;
|
|
43
|
-
} | null;
|
|
44
|
-
/** @type {any} */
|
|
45
|
-
_httpAgent: any;
|
|
46
|
-
/** @type {any} */
|
|
47
|
-
_httpsAgent: any;
|
|
48
50
|
/** @returns {import("../capabilities.js").TransportCapabilities} - Supported capabilities. */
|
|
49
51
|
get capabilities(): import("../capabilities.js").TransportCapabilities;
|
|
50
52
|
/** @returns {Promise<{http: any, https: any, zlib: any, stream: any}>} - Lazily-loaded Node modules. */
|
|
@@ -70,7 +72,7 @@ export default class NodeTransport {
|
|
|
70
72
|
* @param {import("../snap-req.js").NormalizedRequest} request - Normalized request.
|
|
71
73
|
* @param {SnapReqHeaders} headers - Headers, mutated with Content-Length / Content-Encoding.
|
|
72
74
|
* @param {{zlib: any, stream: any}} modules - Node modules.
|
|
73
|
-
* @returns {{buffer: Buffer | null, stream: import("node:stream").Readable | null}} - Prepared body.
|
|
75
|
+
* @returns {{buffer: Buffer | null, stream: import("node:stream").Readable | null, ownedStream: boolean}} - Prepared body.
|
|
74
76
|
*/
|
|
75
77
|
_prepareRequestBody(request: import("../snap-req.js").NormalizedRequest, headers: SnapReqHeaders, { zlib, stream }: {
|
|
76
78
|
zlib: any;
|
|
@@ -78,6 +80,7 @@ export default class NodeTransport {
|
|
|
78
80
|
}): {
|
|
79
81
|
buffer: Buffer | null;
|
|
80
82
|
stream: import("node:stream").Readable | null;
|
|
83
|
+
ownedStream: boolean;
|
|
81
84
|
};
|
|
82
85
|
/**
|
|
83
86
|
* @param {string} encoding - Compression encoding.
|
|
@@ -108,6 +111,4 @@ export default class NodeTransport {
|
|
|
108
111
|
*/
|
|
109
112
|
close(): void;
|
|
110
113
|
}
|
|
111
|
-
import SnapReqResponse from "../response.js";
|
|
112
|
-
import SnapReqHeaders from "../headers.js";
|
|
113
114
|
//# sourceMappingURL=node-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-transport.d.ts","sourceRoot":"","sources":["../../src/transports/node-transport.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-transport.d.ts","sourceRoot":"","sources":["../../src/transports/node-transport.js"],"names":[],"mappings":"AAIA,OAAO,cAAc,MAAM,eAAe,CAAA;AAC1C,OAAO,eAAe,MAAM,gBAAgB,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAkBzB,UAAU;IACV,GAAG;aALO,MAAM,GAAG,MAAM;eAAS,MAAM,GAAG,MAAM;cAAQ,MAAM,GAAG,MAAM;6BAAuB,OAAO;;IAMtG,SAAS;IACd,qEAAqE;IAChE,QAAQ,EADF;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAC,GAAG,IAAI;IAEjE,kBAAkB;IACb,UAAU,EADJ,GAAG;IAEd,kBAAkB;IACb,WAAW,EADL,GAAG;IAxBhB,0CAA0C;IAC1C,MAAM,KAAK,aAAa,IADV,MAAM,CAGnB;IAED,sFAAsF;IACtF,MAAM,CAAC,WAAW,IADJ,OAAO,CAGpB;IAED;;;;;OAKG;IACH,YAAY,EAAC,UAAU,EAAE,GAAG,EAAE,SAAgB,EAAC,AAL5C,CAIF,EAHE;QAAwB,UAAU,AAAlC,CACA,EADQ,MAAM,CACd;QAAqH,GAAG,AAAxH,CACA,EADQ;YAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;SAAC,CAC3G;QAAyB,SAAS,AAAlC,CACF,EADU,OAAO,CACjB;KACmD,EAUnD;IAED,8FAA8F;IAC9F,IAAI,YAAY,IADF,OAAO,oBAAoB,EAAE,qBAAqB,CAW/D;IAED,wGAAwG;IAClG,KAAK,IADG,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAC,CAAC,CAcrE;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,EAHF,OAGE,GAFA,GAAG,CAoBf;IAED;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAHjB,OAAO,gBAAgB,EAAE,iBAGR,GAFf,OAAO,CAAC,eAAe,CAAC,CAyHpC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EALhB,OAAO,gBAAgB,EAAE,iBAKT,EAAE,OAAO,EAJzB,cAIyB,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,EAHzC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAGkB,GAFvC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,OAAO,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,CAsDxG;IAED;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAJhB,MAIgB,EAAE,IAAI,EAHtB,GAGsB,GAFpB,OAAO,aAAa,EAAE,SAAS,CAS3C;IAED;;;;OAIG;IACH,qBAAqB,CAAC,QAAQ,EAJnB,OAAO,WAAW,EAAE,eAID,EAAE,IAAI,EAHzB,GAGyB,GAFvB,OAAO,aAAa,EAAE,QAAQ,CAkB1C;IAED;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAJd,MAIc,EAAE,IAAI,EAHpB,GAGoB,GAFlB,OAAO,aAAa,EAAE,SAAS,CAS3C;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAHd,OAAO,WAAW,EAAE,eAGN,GAFZ,cAAc,CAY1B;IAED;;;OAGG;IACH,KAAK,IAFQ,IAAI,CAOhB;CACF"}
|