starpc 0.23.0 → 0.23.2

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.
@@ -13,17 +13,23 @@ export async function writeToPushable(dataSource, out) {
13
13
  }
14
14
  export function buildPushableSink(target) {
15
15
  return async (source) => {
16
- if (Symbol.asyncIterator in source) {
17
- // Handle AsyncIterable
18
- for await (const pkt of source) {
19
- processPacket(pkt, target);
16
+ try {
17
+ if (Symbol.asyncIterator in source) {
18
+ // Handle AsyncIterable
19
+ for await (const pkt of source) {
20
+ processPacket(pkt, target);
21
+ }
20
22
  }
21
- }
22
- else {
23
- // Handle Iterable
24
- for (const pkt of source) {
25
- processPacket(pkt, target);
23
+ else {
24
+ // Handle Iterable
25
+ for (const pkt of source) {
26
+ processPacket(pkt, target);
27
+ }
26
28
  }
29
+ target.end();
30
+ }
31
+ catch (err) {
32
+ target.end(err);
27
33
  }
28
34
  };
29
35
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "starpc",
3
- "version": "0.23.0",
3
+ "version": "0.23.2",
4
4
  "description": "Streaming protobuf RPC service protocol over any two-way channel.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -61,7 +61,7 @@
61
61
  "singleQuote": true
62
62
  },
63
63
  "devDependencies": {
64
- "@aperturerobotics/ts-common": "^0.8.3",
64
+ "@aperturerobotics/ts-common": "^0.8.4",
65
65
  "bufferutil": "^4.0.7",
66
66
  "depcheck": "^1.4.6",
67
67
  "esbuild": "^0.20.0",
package/srpc/pushable.ts CHANGED
@@ -21,16 +21,21 @@ export function buildPushableSink<T>(
21
21
  target: Pushable<T>,
22
22
  ): Sink<Source<T>, Promise<void>> {
23
23
  return async (source: Source<T>): Promise<void> => {
24
- if (Symbol.asyncIterator in source) {
25
- // Handle AsyncIterable
26
- for await (const pkt of source as AsyncIterable<any>) {
27
- processPacket(pkt, target)
28
- }
29
- } else {
30
- // Handle Iterable
31
- for (const pkt of source as Iterable<any>) {
32
- processPacket(pkt, target)
24
+ try {
25
+ if (Symbol.asyncIterator in source) {
26
+ // Handle AsyncIterable
27
+ for await (const pkt of source as AsyncIterable<any>) {
28
+ processPacket(pkt, target)
29
+ }
30
+ } else {
31
+ // Handle Iterable
32
+ for (const pkt of source as Iterable<any>) {
33
+ processPacket(pkt, target)
34
+ }
33
35
  }
36
+ target.end()
37
+ } catch (err) {
38
+ target.end(err as Error)
34
39
  }
35
40
  }
36
41
  }