@matter/general 0.16.7 → 0.16.8-alpha.0-20260125-38e62bc3e

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.
Files changed (65) hide show
  1. package/dist/cjs/MatterError.d.ts +12 -1
  2. package/dist/cjs/MatterError.d.ts.map +1 -1
  3. package/dist/cjs/MatterError.js +26 -1
  4. package/dist/cjs/MatterError.js.map +1 -1
  5. package/dist/cjs/environment/SharedEnvironmentServices.d.ts +2 -2
  6. package/dist/cjs/environment/SharedEnvironmentServices.js +2 -2
  7. package/dist/cjs/storage/StringifyTools.d.ts +1 -1
  8. package/dist/cjs/storage/StringifyTools.d.ts.map +1 -1
  9. package/dist/cjs/storage/StringifyTools.js.map +1 -1
  10. package/dist/cjs/util/Abort.d.ts +11 -5
  11. package/dist/cjs/util/Abort.d.ts.map +1 -1
  12. package/dist/cjs/util/Abort.js +71 -29
  13. package/dist/cjs/util/Abort.js.map +1 -1
  14. package/dist/cjs/util/AsyncIterator.d.ts +21 -0
  15. package/dist/cjs/util/AsyncIterator.d.ts.map +1 -0
  16. package/dist/cjs/util/AsyncIterator.js +71 -0
  17. package/dist/cjs/util/AsyncIterator.js.map +6 -0
  18. package/dist/cjs/util/DataReadQueue.d.ts +4 -1
  19. package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
  20. package/dist/cjs/util/DataReadQueue.js +27 -5
  21. package/dist/cjs/util/DataReadQueue.js.map +1 -1
  22. package/dist/cjs/util/Semaphore.d.ts.map +1 -1
  23. package/dist/cjs/util/Semaphore.js +5 -5
  24. package/dist/cjs/util/Semaphore.js.map +1 -1
  25. package/dist/cjs/util/index.d.ts +1 -0
  26. package/dist/cjs/util/index.d.ts.map +1 -1
  27. package/dist/cjs/util/index.js +1 -0
  28. package/dist/cjs/util/index.js.map +1 -1
  29. package/dist/esm/MatterError.d.ts +12 -1
  30. package/dist/esm/MatterError.d.ts.map +1 -1
  31. package/dist/esm/MatterError.js +26 -1
  32. package/dist/esm/MatterError.js.map +1 -1
  33. package/dist/esm/environment/SharedEnvironmentServices.d.ts +2 -2
  34. package/dist/esm/environment/SharedEnvironmentServices.js +2 -2
  35. package/dist/esm/storage/StringifyTools.d.ts +1 -1
  36. package/dist/esm/storage/StringifyTools.d.ts.map +1 -1
  37. package/dist/esm/storage/StringifyTools.js.map +1 -1
  38. package/dist/esm/util/Abort.d.ts +11 -5
  39. package/dist/esm/util/Abort.d.ts.map +1 -1
  40. package/dist/esm/util/Abort.js +71 -29
  41. package/dist/esm/util/Abort.js.map +1 -1
  42. package/dist/esm/util/AsyncIterator.d.ts +21 -0
  43. package/dist/esm/util/AsyncIterator.d.ts.map +1 -0
  44. package/dist/esm/util/AsyncIterator.js +51 -0
  45. package/dist/esm/util/AsyncIterator.js.map +6 -0
  46. package/dist/esm/util/DataReadQueue.d.ts +4 -1
  47. package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
  48. package/dist/esm/util/DataReadQueue.js +28 -6
  49. package/dist/esm/util/DataReadQueue.js.map +1 -1
  50. package/dist/esm/util/Semaphore.d.ts.map +1 -1
  51. package/dist/esm/util/Semaphore.js +6 -6
  52. package/dist/esm/util/Semaphore.js.map +1 -1
  53. package/dist/esm/util/index.d.ts +1 -0
  54. package/dist/esm/util/index.d.ts.map +1 -1
  55. package/dist/esm/util/index.js +1 -0
  56. package/dist/esm/util/index.js.map +1 -1
  57. package/package.json +2 -2
  58. package/src/MatterError.ts +31 -2
  59. package/src/environment/SharedEnvironmentServices.ts +2 -2
  60. package/src/storage/StringifyTools.ts +2 -1
  61. package/src/util/Abort.ts +94 -32
  62. package/src/util/AsyncIterator.ts +70 -0
  63. package/src/util/DataReadQueue.ts +33 -6
  64. package/src/util/Semaphore.ts +8 -7
  65. package/src/util/index.ts +1 -0
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { AbortedError } from "#MatterError.js";
7
+ import { AbortedError, ClosedError } from "#MatterError.js";
8
8
  import { Duration } from "#time/Duration.js";
9
9
  import { Time, Timer } from "#time/Time.js";
10
10
  import { Instant } from "#time/TimeUnit.js";
@@ -64,7 +64,7 @@ export class Semaphore {
64
64
  async obtainSlot(abort?: Abort.Signal): Promise<WorkSlot> {
65
65
  // Check if closed or already aborted before proceeding
66
66
  if (this.#closed) {
67
- throw new AbortedError("Queue is closed");
67
+ throw new ClosedError("Queue is closed");
68
68
  }
69
69
  if (abort) {
70
70
  const signal = "signal" in abort ? abort.signal : abort;
@@ -110,9 +110,10 @@ export class Semaphore {
110
110
  this.#queue.length,
111
111
  );
112
112
  }
113
- // Throw AbortedError (use reason if it's already an AbortedError)
114
- const reason = combinedAbort.reason;
115
- throw reason instanceof AbortedError ? reason : new AbortedError();
113
+ combinedAbort.throwIfAborted();
114
+
115
+ // Should not get here
116
+ throw new AbortedError("Aborted without reason");
116
117
  }
117
118
 
118
119
  return result;
@@ -201,7 +202,7 @@ export class Semaphore {
201
202
  clear(): void {
202
203
  if (this.#queue.length > 0) {
203
204
  // Abort current waiters and create fresh abort for future requests
204
- this.#abort.abort(new AbortedError("Queue cleared"));
205
+ this.#abort.abort(new ClosedError("Queue cleared"));
205
206
  this.#abort = new Abort();
206
207
  }
207
208
  this.#queue.length = 0;
@@ -226,7 +227,7 @@ export class Semaphore {
226
227
  */
227
228
  close(): void {
228
229
  this.#closed = true;
229
- this.#abort.abort(new AbortedError("Queue is closed"));
230
+ this.#abort.abort(new ClosedError("Queue is closed"));
230
231
  this.clear();
231
232
  this.#delayTimer.stop();
232
233
  }
package/src/util/index.ts CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  export * from "./Abort.js";
8
8
  export * from "./Array.js";
9
+ export * from "./AsyncIterator.js";
9
10
  export * from "./Boot.js";
10
11
  export * from "./Bytes.js";
11
12
  export * from "./Cache.js";