@orpc/shared 2.0.0-beta.1 → 2.0.0-beta.3
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/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.mjs +24 -3
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -287,7 +287,9 @@ declare function traceReadableStream<T>(options: StartSpanOptions | string, stre
|
|
|
287
287
|
/**
|
|
288
288
|
* Converts a `ReadableStream` into an `AsyncIteratorClass`.
|
|
289
289
|
*/
|
|
290
|
-
declare function streamToAsyncIteratorClass<T>(stream: ReadableStream<T
|
|
290
|
+
declare function streamToAsyncIteratorClass<T>(stream: ReadableStream<T>, { signal }?: {
|
|
291
|
+
signal?: undefined | AbortSignal;
|
|
292
|
+
}): AsyncIteratorClass<T>;
|
|
291
293
|
/**
|
|
292
294
|
* Converts an `AsyncIterator` into a `ReadableStream`.
|
|
293
295
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -287,7 +287,9 @@ declare function traceReadableStream<T>(options: StartSpanOptions | string, stre
|
|
|
287
287
|
/**
|
|
288
288
|
* Converts a `ReadableStream` into an `AsyncIteratorClass`.
|
|
289
289
|
*/
|
|
290
|
-
declare function streamToAsyncIteratorClass<T>(stream: ReadableStream<T
|
|
290
|
+
declare function streamToAsyncIteratorClass<T>(stream: ReadableStream<T>, { signal }?: {
|
|
291
|
+
signal?: undefined | AbortSignal;
|
|
292
|
+
}): AsyncIteratorClass<T>;
|
|
291
293
|
/**
|
|
292
294
|
* Converts an `AsyncIterator` into a `ReadableStream`.
|
|
293
295
|
*/
|
package/dist/index.mjs
CHANGED
|
@@ -823,14 +823,35 @@ function traceReadableStream(options, stream) {
|
|
|
823
823
|
}
|
|
824
824
|
});
|
|
825
825
|
}
|
|
826
|
-
function streamToAsyncIteratorClass(stream) {
|
|
826
|
+
function streamToAsyncIteratorClass(stream, { signal } = {}) {
|
|
827
827
|
const reader = stream.getReader();
|
|
828
|
+
let cancelledBySignal = false;
|
|
828
829
|
return new AsyncIteratorClass(
|
|
829
830
|
async () => {
|
|
830
|
-
|
|
831
|
+
if (signal?.aborted) {
|
|
832
|
+
cancelledBySignal = true;
|
|
833
|
+
throw signal.reason;
|
|
834
|
+
}
|
|
835
|
+
if (!signal) {
|
|
836
|
+
return reader.read();
|
|
837
|
+
}
|
|
838
|
+
const { promise, reject } = promiseWithResolvers();
|
|
839
|
+
const onAbort = () => reject(signal.reason);
|
|
840
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
841
|
+
try {
|
|
842
|
+
return await Promise.race([
|
|
843
|
+
reader.read(),
|
|
844
|
+
promise.catch(async (reason) => {
|
|
845
|
+
cancelledBySignal = true;
|
|
846
|
+
throw reason;
|
|
847
|
+
})
|
|
848
|
+
]);
|
|
849
|
+
} finally {
|
|
850
|
+
signal.removeEventListener("abort", onAbort);
|
|
851
|
+
}
|
|
831
852
|
},
|
|
832
853
|
async ({ kind, error }) => {
|
|
833
|
-
if (kind === "cancelled") {
|
|
854
|
+
if (kind === "cancelled" || kind === "error" && cancelledBySignal) {
|
|
834
855
|
await reader.cancel(error);
|
|
835
856
|
}
|
|
836
857
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orpc/shared",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.0-beta.
|
|
4
|
+
"version": "2.0.0-beta.3",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://orpc.dev",
|
|
7
7
|
"repository": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@standardserver/shared": "^0.0.
|
|
36
|
+
"@standardserver/shared": "^0.0.25",
|
|
37
37
|
"radash": "^12.1.1",
|
|
38
38
|
"type-fest": "^5.3.1"
|
|
39
39
|
},
|