@peerbit/stream 4.5.3-e38a67b → 4.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-event.d.ts","sourceRoot":"","sources":["../../src/wait-for-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAe,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvD,wBAAgB,YAAY,CAC3B,OAAO,SAAS,iBAAiB,CAAC,MAAM,CAAC,EACzC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,SAAS,iBAAiB,CACrE,MAAM,CAAC,CACP,GACE,CAAC,GACD,KAAK,EACR,KAAK,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAEzC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,EAAE,EACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnE,OAAO,CAAC,EAAE;IACT,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,GACC,OAAO,CAAC,IAAI,CAAC,CAqCf"}
1
+ {"version":3,"file":"wait-for-event.d.ts","sourceRoot":"","sources":["../../src/wait-for-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAe,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvD,wBAAgB,YAAY,CAC3B,OAAO,SAAS,iBAAiB,CAAC,MAAM,CAAC,EACzC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,SAAS,iBAAiB,CACrE,MAAM,CAAC,CACP,GACE,CAAC,GACD,KAAK,EACR,KAAK,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAEzC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,EAAE,EACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnE,OAAO,CAAC,EAAE;IACT,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,GACC,OAAO,CAAC,IAAI,CAAC,CAuDf"}
@@ -2,23 +2,36 @@ import { AbortError, TimeoutError } from "@peerbit/time";
2
2
  import pDefer, {} from "p-defer";
3
3
  export function waitForEvent(emitter, events, resolver, options) {
4
4
  const deferred = pDefer();
5
- const abortFn = (e) => deferred.reject(e ??
6
- new AbortError("Aborted waiting for event: " +
7
- String(events.length > 1 ? events.join(", ") : events[0])));
5
+ const abortFn = (e) => {
6
+ if (e instanceof Error) {
7
+ deferred.reject(e);
8
+ return;
9
+ }
10
+ const reason = e?.target?.reason;
11
+ deferred.reject(reason ??
12
+ new AbortError("Aborted waiting for event: " +
13
+ String(events.length > 1 ? events.join(", ") : events[0])));
14
+ };
8
15
  const checkIsReady = (...args) => resolver(deferred);
16
+ let timeout = undefined;
9
17
  deferred.promise.finally(() => {
10
18
  for (const event of events) {
11
19
  emitter.removeEventListener(event, checkIsReady);
12
20
  }
13
- clearTimeout(timeout);
21
+ timeout && clearTimeout(timeout);
14
22
  options?.signals?.forEach((signal) => signal.removeEventListener("abort", abortFn));
15
23
  });
24
+ const abortedSignal = options?.signals?.find((signal) => signal.aborted);
25
+ if (abortedSignal) {
26
+ deferred.reject(abortedSignal.reason ??
27
+ new AbortError("Aborted waiting for event: " +
28
+ String(events.length > 1 ? events.join(", ") : events[0])));
29
+ return deferred.promise;
30
+ }
16
31
  for (const event of events) {
17
- emitter.addEventListener(event, (evt) => {
18
- checkIsReady(event);
19
- });
32
+ emitter.addEventListener(event, checkIsReady);
20
33
  }
21
- let timeout = setTimeout(() => abortFn(new TimeoutError("Timeout waiting for event")), options?.timeout ?? 10 * 1000);
34
+ timeout = setTimeout(() => abortFn(new TimeoutError("Timeout waiting for event")), options?.timeout ?? 10 * 1000);
22
35
  options?.signals?.forEach((signal) => signal.addEventListener("abort", abortFn));
23
36
  resolver(deferred);
24
37
  return deferred.promise;
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-event.js","sourceRoot":"","sources":["../../src/wait-for-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,MAAM,EAAE,EAAwB,MAAM,SAAS,CAAC;AAEvD,MAAM,UAAU,YAAY,CAS3B,OAAgB,EAChB,MAAe,EACf,QAAmE,EACnE,OAGC;IAED,MAAM,QAAQ,GAAG,MAAM,EAAQ,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,CAAM,EAAE,EAAE,CAC1B,QAAQ,CAAC,MAAM,CACd,CAAC;QACA,IAAI,UAAU,CACb,6BAA6B;YAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,mBAAmB,CAAC,KAAY,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,gBAAgB,CAAC,KAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YAC9C,YAAY,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,UAAU,CACvB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC,EAC5D,OAAO,EAAE,OAAO,IAAI,EAAE,GAAG,IAAI,CAC7B,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CACzC,CAAC;IACD,QAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"wait-for-event.js","sourceRoot":"","sources":["../../src/wait-for-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,MAAM,EAAE,EAAwB,MAAM,SAAS,CAAC;AAEvD,MAAM,UAAU,YAAY,CAS3B,OAAgB,EAChB,MAAe,EACf,QAAmE,EACnE,OAGC;IAED,MAAM,QAAQ,GAAG,MAAM,EAAQ,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,CAAW,EAAE,EAAE;QAC/B,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAI,CAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QAC1C,QAAQ,CAAC,MAAM,CACd,MAAM;YACL,IAAI,UAAU,CACb,6BAA6B;gBAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,OAAO,GAA8C,SAAS,CAAC;IAEnE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,mBAAmB,CAAC,KAAY,EAAE,YAAmB,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzE,IAAI,aAAa,EAAE,CAAC;QACnB,QAAQ,CAAC,MAAM,CACd,aAAa,CAAC,MAAM;YACnB,IAAI,UAAU,CACb,6BAA6B;gBAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,gBAAgB,CAAC,KAAY,EAAE,YAAmB,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,UAAU,CACnB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC,EAC5D,OAAO,EAAE,OAAO,IAAI,EAAE,GAAG,IAAI,CAC7B,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CACzC,CAAC;IACD,QAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/stream",
3
- "version": "4.5.3-e38a67b",
3
+ "version": "4.6.0",
4
4
  "description": "A building block for direct streaming protocols",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -69,11 +69,11 @@
69
69
  "dao.xyz"
70
70
  ],
71
71
  "devDependencies": {
72
- "@peerbit/libp2p-test-utils": "2.2.0-e38a67b",
73
72
  "@types/fast-fifo": "^1.0.2",
74
73
  "@types/sinon": "^10.0.20",
75
74
  "sinon": "^21.0.0",
76
- "@libp2p/crypto": "^5.1.10"
75
+ "@libp2p/crypto": "^5.1.10",
76
+ "@peerbit/libp2p-test-utils": "2.2.0"
77
77
  },
78
78
  "dependencies": {
79
79
  "@chainsafe/libp2p-noise": "^17.0.0",
@@ -98,11 +98,11 @@
98
98
  "uint8arraylist": "^2.4.8",
99
99
  "uint8arrays": "^5.1.0",
100
100
  "yallist": "^5.0.0",
101
- "@peerbit/cache": "2.2.0-e38a67b",
102
- "@peerbit/crypto": "2.4.1-e38a67b",
103
- "@peerbit/logger": "2.0.0-e38a67b",
104
- "@peerbit/stream-interface": "5.3.1-e38a67b",
105
- "@peerbit/time": "2.3.0-e38a67b"
101
+ "@peerbit/cache": "2.2.0",
102
+ "@peerbit/crypto": "2.4.1",
103
+ "@peerbit/logger": "2.0.0",
104
+ "@peerbit/time": "2.3.0",
105
+ "@peerbit/stream-interface": "5.4.0"
106
106
  },
107
107
  "scripts": {
108
108
  "bench": "node --loader ts-node/esm ./benchmark/index.ts",
@@ -20,33 +20,51 @@ export function waitForEvent<
20
20
  },
21
21
  ): Promise<void> {
22
22
  const deferred = pDefer<void>();
23
- const abortFn = (e: any) =>
23
+ const abortFn = (e?: unknown) => {
24
+ if (e instanceof Error) {
25
+ deferred.reject(e);
26
+ return;
27
+ }
28
+
29
+ const reason = (e as any)?.target?.reason;
24
30
  deferred.reject(
25
- e ??
31
+ reason ??
26
32
  new AbortError(
27
33
  "Aborted waiting for event: " +
28
34
  String(events.length > 1 ? events.join(", ") : events[0]),
29
35
  ),
30
36
  );
37
+ };
31
38
 
32
39
  const checkIsReady = (...args: any[]) => resolver(deferred);
40
+ let timeout: ReturnType<typeof setTimeout> | undefined = undefined;
33
41
 
34
42
  deferred.promise.finally(() => {
35
43
  for (const event of events) {
36
- emitter.removeEventListener(event as any, checkIsReady);
44
+ emitter.removeEventListener(event as any, checkIsReady as any);
37
45
  }
38
- clearTimeout(timeout);
46
+ timeout && clearTimeout(timeout);
39
47
  options?.signals?.forEach((signal) =>
40
48
  signal.removeEventListener("abort", abortFn),
41
49
  );
42
50
  });
43
51
 
52
+ const abortedSignal = options?.signals?.find((signal) => signal.aborted);
53
+ if (abortedSignal) {
54
+ deferred.reject(
55
+ abortedSignal.reason ??
56
+ new AbortError(
57
+ "Aborted waiting for event: " +
58
+ String(events.length > 1 ? events.join(", ") : events[0]),
59
+ ),
60
+ );
61
+ return deferred.promise;
62
+ }
63
+
44
64
  for (const event of events) {
45
- emitter.addEventListener(event as any, (evt) => {
46
- checkIsReady(event);
47
- });
65
+ emitter.addEventListener(event as any, checkIsReady as any);
48
66
  }
49
- let timeout = setTimeout(
67
+ timeout = setTimeout(
50
68
  () => abortFn(new TimeoutError("Timeout waiting for event")),
51
69
  options?.timeout ?? 10 * 1000,
52
70
  );