@nmtjs/common 0.16.0-beta.1 → 0.16.0-beta.10

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,9 +1,5 @@
1
1
  /**
2
- * Combines multiple AbortSignals into one that aborts when any of the source signals abort.
3
- *
4
- * This is a custom implementation to work around memory leaks in Node.js's AbortSignal.any().
5
- * Bun's implementation is fine, so we use the native version there.
6
- *
7
- * @see https://github.com/nodejs/node/issues/54614
2
+ * Little helper to combine multiple AbortSignals into one,
3
+ * with handling of null or undefined values.
8
4
  */
9
- export declare function anyAbortSignal(...signals: (AbortSignal | undefined)[]): AbortSignal;
5
+ export declare function anyAbortSignal(...signals: (AbortSignal | undefined | null)[]): AbortSignal;
@@ -1,51 +1,18 @@
1
- const isNode = !('Bun' in globalThis) && globalThis.process?.release?.name === 'node';
1
+ /// <reference lib="dom" />
2
2
  /**
3
- * Combines multiple AbortSignals into one that aborts when any of the source signals abort.
4
- *
5
- * This is a custom implementation to work around memory leaks in Node.js's AbortSignal.any().
6
- * Bun's implementation is fine, so we use the native version there.
7
- *
8
- * @see https://github.com/nodejs/node/issues/54614
3
+ * Little helper to combine multiple AbortSignals into one,
4
+ * with handling of null or undefined values.
9
5
  */
10
6
  export function anyAbortSignal(...signals) {
11
7
  const filtered = signals.filter(Boolean);
12
8
  if (filtered.length === 0) {
13
9
  throw new Error('No AbortSignals provided');
14
10
  }
15
- if (filtered.length === 1) {
11
+ else if (filtered.length === 1) {
16
12
  return filtered[0];
17
13
  }
18
- // Use native implementation on Bun (no memory leak there)
19
- if (!isNode) {
14
+ else {
20
15
  return AbortSignal.any(filtered);
21
16
  }
22
- // Custom implementation for Node.js to avoid memory leaks
23
- const controller = new AbortController();
24
- // Check if any signal is already aborted
25
- for (const signal of filtered) {
26
- if (signal.aborted) {
27
- controller.abort();
28
- return controller.signal;
29
- }
30
- }
31
- // Track cleanup functions
32
- const cleanups = [];
33
- const onAbort = (signal) => {
34
- controller.abort(signal.reason);
35
- // Clean up all listeners immediately after abort
36
- cleanup();
37
- };
38
- const cleanup = () => {
39
- for (const fn of cleanups) {
40
- fn();
41
- }
42
- cleanups.length = 0;
43
- };
44
- // Attach listeners to all signals
45
- for (const signal of filtered) {
46
- signal.addEventListener('abort', () => onAbort(signal), { once: true });
47
- cleanups.push(() => signal.removeEventListener('abort', () => onAbort(signal)));
48
- }
49
- return controller.signal;
50
17
  }
51
18
  //# sourceMappingURL=abortSignal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abortSignal.js","sourceRoot":"","sources":["../src/abortSignal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GACV,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,CAAA;AAExE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAG,OAAoC,EAC1B;IACb,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAkB,CAAA;IAEzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,0DAA0D;IAC1D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IAExC,yCAAyC;IACzC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,UAAU,CAAC,KAAK,EAAE,CAAA;YAClB,OAAO,UAAU,CAAC,MAAM,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAAmB,EAAE,CAAA;IAEnC,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,EAAE,CAAC;QACvC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/B,iDAAiD;QACjD,OAAO,EAAE,CAAA;IAAA,CACV,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,EAAE,EAAE,CAAA;QACN,CAAC;QACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAAA,CACpB,CAAA;IAED,kCAAkC;IAClC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACvE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CACjB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAC3D,CAAA;IACH,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAA;AAAA,CACzB"}
1
+ {"version":3,"file":"abortSignal.js","sourceRoot":"","sources":["../src/abortSignal.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAG,OAA2C;IAE9C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAkB,CAAA;IACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAc1D,MAAM,OAAO,YAAY;IACd,QAAQ,CAAmB;IAC3B,QAAQ,CAAoB;IAErC,YAAY,OAAO,GAA8B,EAAE,EAAE;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAChC;YACE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;gBACrB,mBAAmB;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAChC;oBACE,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;wBACjB,MAAM,KAAK,GAAG,OAAO,EAAE,SAAS;4BAC9B,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC;4BAC5B,CAAC,CAAC,MAAM,CAAA;wBACV,UAAU,CAAC,OAAO,CAAC,KAAU,CAAC,CAAA;oBAAA,CAC/B;oBACD,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC3C,KAAK,EAAE,GAAG,EAAE,CAAC;wBACX,OAAO,EAAE,KAAK,EAAE,EAAE,CAAA;wBAClB,IAAI,CAAC;4BACH,UAAU,CAAC,KAAK,EAAE,CAAA;wBACpB,CAAC;wBAAC,MAAM,CAAC;4BACP,sDAAsD;wBACxD,CAAC;oBAAA,CACF;iBACF,EACD,OAAO,CAAC,gBAAgB,CACzB,CAAA;gBACD,OAAO,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAA;YAAA,CAC5B;YACD,IAAI,EAAE,OAAO,EAAE,IAAI;SACpB,EACD,OAAO,CAAC,gBAAgB,CACzB,CAAA;IAAA,CACF;CACF"}
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAc1D,MAAM,OAAO,YAAY;IACd,QAAQ,CAAmB;IAC3B,QAAQ,CAAoB;IAErC,YAAY,OAAO,GAA8B,EAAE;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAChC;YACE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE;gBACpB,mBAAmB;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAChC;oBACE,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;wBAChB,MAAM,KAAK,GAAG,OAAO,EAAE,SAAS;4BAC9B,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC;4BAC5B,CAAC,CAAC,MAAM,CAAA;wBACV,UAAU,CAAC,OAAO,CAAC,KAAU,CAAC,CAAA;oBAChC,CAAC;oBACD,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC3C,KAAK,EAAE,GAAG,EAAE;wBACV,OAAO,EAAE,KAAK,EAAE,EAAE,CAAA;wBAClB,IAAI,CAAC;4BACH,UAAU,CAAC,KAAK,EAAE,CAAA;wBACpB,CAAC;wBAAC,MAAM,CAAC;4BACP,sDAAsD;wBACxD,CAAC;oBACH,CAAC;iBACF,EACD,OAAO,CAAC,gBAAgB,CACzB,CAAA;gBACD,OAAO,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAA;YAC7B,CAAC;YACD,IAAI,EAAE,OAAO,EAAE,IAAI;SACpB,EACD,OAAO,CAAC,gBAAgB,CACzB,CAAA;IACH,CAAC;CACF"}
package/dist/utils.d.ts CHANGED
@@ -34,3 +34,4 @@ export declare function isAbortError(error: any): boolean;
34
34
  * Very simple pattern matching function.
35
35
  */
36
36
  export declare function match(value: string, pattern: Pattern): boolean;
37
+ export declare const isError: (value: any) => value is Error;
package/dist/utils.js CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference lib="dom" />
1
2
  export const noopFn = () => { };
2
3
  export function merge(...objects) {
3
4
  return Object.assign({}, ...objects);
@@ -133,4 +134,12 @@ export function match(value, pattern) {
133
134
  return pattern.test(value);
134
135
  }
135
136
  }
137
+ export const isError = (value) => {
138
+ if ('isError' in Error && typeof Error.isError === 'function') {
139
+ return Error.isError(value);
140
+ }
141
+ else {
142
+ return value instanceof Error;
143
+ }
144
+ };
136
145
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "LICENSE.md",
16
16
  "README.md"
17
17
  ],
18
- "version": "0.16.0-beta.1",
18
+ "version": "0.16.0-beta.10",
19
19
  "scripts": {
20
20
  "clean-build": "rm -rf ./dist"
21
21
  }
@@ -1,66 +1,18 @@
1
- const isNode =
2
- !('Bun' in globalThis) && globalThis.process?.release?.name === 'node'
1
+ /// <reference lib="dom" />
3
2
 
4
3
  /**
5
- * Combines multiple AbortSignals into one that aborts when any of the source signals abort.
6
- *
7
- * This is a custom implementation to work around memory leaks in Node.js's AbortSignal.any().
8
- * Bun's implementation is fine, so we use the native version there.
9
- *
10
- * @see https://github.com/nodejs/node/issues/54614
4
+ * Little helper to combine multiple AbortSignals into one,
5
+ * with handling of null or undefined values.
11
6
  */
12
7
  export function anyAbortSignal(
13
- ...signals: (AbortSignal | undefined)[]
8
+ ...signals: (AbortSignal | undefined | null)[]
14
9
  ): AbortSignal {
15
10
  const filtered = signals.filter(Boolean) as AbortSignal[]
16
-
17
11
  if (filtered.length === 0) {
18
12
  throw new Error('No AbortSignals provided')
19
- }
20
-
21
- if (filtered.length === 1) {
13
+ } else if (filtered.length === 1) {
22
14
  return filtered[0]
23
- }
24
-
25
- // Use native implementation on Bun (no memory leak there)
26
- if (!isNode) {
15
+ } else {
27
16
  return AbortSignal.any(filtered)
28
17
  }
29
-
30
- // Custom implementation for Node.js to avoid memory leaks
31
- const controller = new AbortController()
32
-
33
- // Check if any signal is already aborted
34
- for (const signal of filtered) {
35
- if (signal.aborted) {
36
- controller.abort()
37
- return controller.signal
38
- }
39
- }
40
-
41
- // Track cleanup functions
42
- const cleanups: (() => void)[] = []
43
-
44
- const onAbort = (signal: AbortSignal) => {
45
- controller.abort(signal.reason)
46
- // Clean up all listeners immediately after abort
47
- cleanup()
48
- }
49
-
50
- const cleanup = () => {
51
- for (const fn of cleanups) {
52
- fn()
53
- }
54
- cleanups.length = 0
55
- }
56
-
57
- // Attach listeners to all signals
58
- for (const signal of filtered) {
59
- signal.addEventListener('abort', () => onAbort(signal), { once: true })
60
- cleanups.push(() =>
61
- signal.removeEventListener('abort', () => onAbort(signal)),
62
- )
63
- }
64
-
65
- return controller.signal
66
18
  }
package/src/utils.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /// <reference lib="dom" />
2
+
1
3
  import type { Callback, Pattern } from './types.ts'
2
4
 
3
5
  export const noopFn = () => {}
@@ -172,3 +174,11 @@ export function match(value: string, pattern: Pattern) {
172
174
  return pattern.test(value)
173
175
  }
174
176
  }
177
+
178
+ export const isError = (value: any): value is Error => {
179
+ if ('isError' in Error && typeof Error.isError === 'function') {
180
+ return Error.isError(value)
181
+ } else {
182
+ return value instanceof Error
183
+ }
184
+ }