@shutterstock/p-map-iterable 0.0.1 → 1.0.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.
Files changed (85) hide show
  1. package/README.md +85 -76
  2. package/dist/{blocking-queue.d.ts → src/blocking-queue.d.ts} +12 -8
  3. package/dist/src/blocking-queue.d.ts.map +1 -0
  4. package/dist/{blocking-queue.js → src/blocking-queue.js} +28 -19
  5. package/dist/src/blocking-queue.js.map +1 -0
  6. package/dist/src/blocking-queue.test.d.ts.map +1 -0
  7. package/dist/src/blocking-queue.test.js.map +1 -0
  8. package/dist/src/index.d.ts +8 -0
  9. package/dist/src/index.d.ts.map +1 -0
  10. package/dist/src/index.js.map +1 -0
  11. package/dist/src/iterable-mapper.d.ts +125 -0
  12. package/dist/src/iterable-mapper.d.ts.map +1 -0
  13. package/dist/{iterable-mapper.js → src/iterable-mapper.js} +44 -26
  14. package/dist/src/iterable-mapper.js.map +1 -0
  15. package/dist/src/iterable-mapper.test.d.ts.map +1 -0
  16. package/dist/{iterable-mapper.test.js → src/iterable-mapper.test.js} +133 -283
  17. package/dist/src/iterable-mapper.test.js.map +1 -0
  18. package/dist/src/iterable-queue-mapper-simple.d.ts +93 -0
  19. package/dist/src/iterable-queue-mapper-simple.d.ts.map +1 -0
  20. package/dist/{iterable-queue-mapper-simple.js → src/iterable-queue-mapper-simple.js} +47 -10
  21. package/dist/src/iterable-queue-mapper-simple.js.map +1 -0
  22. package/dist/src/iterable-queue-mapper-simple.test.d.ts.map +1 -0
  23. package/dist/{iterable-queue-mapper-simple.test.js → src/iterable-queue-mapper-simple.test.js} +2 -2
  24. package/dist/src/iterable-queue-mapper-simple.test.js.map +1 -0
  25. package/dist/src/iterable-queue-mapper.d.ts +97 -0
  26. package/dist/src/iterable-queue-mapper.d.ts.map +1 -0
  27. package/dist/src/iterable-queue-mapper.js +97 -0
  28. package/dist/src/iterable-queue-mapper.js.map +1 -0
  29. package/dist/src/iterable-queue-mapper.test.d.ts.map +1 -0
  30. package/dist/{iterable-queue-mapper.test.js → src/iterable-queue-mapper.test.js} +15 -30
  31. package/dist/src/iterable-queue-mapper.test.js.map +1 -0
  32. package/dist/{iterable-queue.d.ts → src/iterable-queue.d.ts} +10 -13
  33. package/dist/src/iterable-queue.d.ts.map +1 -0
  34. package/dist/{iterable-queue.js → src/iterable-queue.js} +8 -1
  35. package/dist/src/iterable-queue.js.map +1 -0
  36. package/dist/src/iterable-queue.test.d.ts.map +1 -0
  37. package/dist/{iterable-queue.test.js → src/iterable-queue.test.js} +26 -56
  38. package/dist/src/iterable-queue.test.js.map +1 -0
  39. package/dist/{queue.d.ts → src/queue.d.ts} +5 -0
  40. package/dist/src/queue.d.ts.map +1 -0
  41. package/dist/{queue.js → src/queue.js} +5 -0
  42. package/dist/src/queue.js.map +1 -0
  43. package/dist/{queue.test.d.ts.map → src/queue.test.d.ts.map} +1 -1
  44. package/dist/src/queue.test.js.map +1 -0
  45. package/dist/tsconfig.tsbuildinfo +1 -0
  46. package/package.json +24 -7
  47. package/dist/blocking-queue.d.ts.map +0 -1
  48. package/dist/blocking-queue.js.map +0 -1
  49. package/dist/blocking-queue.test.d.ts.map +0 -1
  50. package/dist/blocking-queue.test.js.map +0 -1
  51. package/dist/index.d.ts +0 -8
  52. package/dist/index.d.ts.map +0 -1
  53. package/dist/index.js.map +0 -1
  54. package/dist/iterable-mapper.d.ts +0 -104
  55. package/dist/iterable-mapper.d.ts.map +0 -1
  56. package/dist/iterable-mapper.js.map +0 -1
  57. package/dist/iterable-mapper.test.d.ts.map +0 -1
  58. package/dist/iterable-mapper.test.js.map +0 -1
  59. package/dist/iterable-queue-mapper-simple.d.ts +0 -49
  60. package/dist/iterable-queue-mapper-simple.d.ts.map +0 -1
  61. package/dist/iterable-queue-mapper-simple.js.map +0 -1
  62. package/dist/iterable-queue-mapper-simple.test.d.ts.map +0 -1
  63. package/dist/iterable-queue-mapper-simple.test.js.map +0 -1
  64. package/dist/iterable-queue-mapper.d.ts +0 -73
  65. package/dist/iterable-queue-mapper.d.ts.map +0 -1
  66. package/dist/iterable-queue-mapper.js +0 -72
  67. package/dist/iterable-queue-mapper.js.map +0 -1
  68. package/dist/iterable-queue-mapper.test.d.ts.map +0 -1
  69. package/dist/iterable-queue-mapper.test.js.map +0 -1
  70. package/dist/iterable-queue.d.ts.map +0 -1
  71. package/dist/iterable-queue.js.map +0 -1
  72. package/dist/iterable-queue.test.d.ts.map +0 -1
  73. package/dist/iterable-queue.test.js.map +0 -1
  74. package/dist/queue.d.ts.map +0 -1
  75. package/dist/queue.js.map +0 -1
  76. package/dist/queue.test.js.map +0 -1
  77. /package/dist/{blocking-queue.test.d.ts → src/blocking-queue.test.d.ts} +0 -0
  78. /package/dist/{blocking-queue.test.js → src/blocking-queue.test.js} +0 -0
  79. /package/dist/{index.js → src/index.js} +0 -0
  80. /package/dist/{iterable-mapper.test.d.ts → src/iterable-mapper.test.d.ts} +0 -0
  81. /package/dist/{iterable-queue-mapper-simple.test.d.ts → src/iterable-queue-mapper-simple.test.d.ts} +0 -0
  82. /package/dist/{iterable-queue-mapper.test.d.ts → src/iterable-queue-mapper.test.d.ts} +0 -0
  83. /package/dist/{iterable-queue.test.d.ts → src/iterable-queue.test.d.ts} +0 -0
  84. /package/dist/{queue.test.d.ts → src/queue.test.d.ts} +0 -0
  85. /package/dist/{queue.test.js → src/queue.test.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-mapper.test.js","sourceRoot":"","sources":["../../src/iterable-mapper.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { Mapper } from './iterable-mapper';
2
+ type Errors<T> = {
3
+ item: T;
4
+ error: string | {
5
+ [key: string]: any;
6
+ } | Error;
7
+ }[];
8
+ /**
9
+ * Accepts queue items via `enqueue` and calls the `mapper` on them
10
+ * with specified concurrency, storing the
11
+ * `mapper` result in a queue of specified max size, before
12
+ * being iterated / read by the caller. The `enqueue` method will block if
13
+ * the queue is full, until an item is read.
14
+ *
15
+ * @remarks
16
+ *
17
+ * Note: the name is somewhat of a misnomer as this wraps `IterableQueueMapper`
18
+ * but is not itself an `Iterable`.
19
+ *
20
+ * Accepts items for mapping in the background, discards the results,
21
+ * but accumulates exceptions in the `errors` property.
22
+ *
23
+ * Allows up to `concurrency` mappers to be in progress before
24
+ * `enqueue` will block until a mapper completes.
25
+ *
26
+ * @category Enqueue Input
27
+ */
28
+ export declare class IterableQueueMapperSimple<Element> {
29
+ private readonly _writer;
30
+ private readonly _errors;
31
+ private readonly _done;
32
+ private readonly _mapper;
33
+ private _isIdle;
34
+ /**
35
+ * Create a new `IterableQueueMapperSimple`
36
+ *
37
+ * @param mapper Function which is called for every item in `input`.
38
+ * Expected to return a `Promise` or value.
39
+ *
40
+ * The `mapper` *should* handle all errors and not allow an error to be thrown
41
+ * out of the `mapper` function as this enables the best handling of errors
42
+ * closest to the time that they occur.
43
+ *
44
+ * If the `mapper` function does allow an error to be thrown then the
45
+ * errors will be accumulated in the `errors` property.
46
+ * @param options IterableQueueMapperSimple options
47
+ */
48
+ constructor(mapper: Mapper<Element, void>, options?: {
49
+ /**
50
+ * Number of items to accept for mapping before requiring the caller to wait for one to complete.
51
+ * @default 4
52
+ */
53
+ concurrency?: number;
54
+ });
55
+ private discardResults;
56
+ private worker;
57
+ /**
58
+ * Accumulated errors from background `mappers`s
59
+ *
60
+ * @remarks
61
+ *
62
+ * Note that this property can be periodically checked
63
+ * during processing and errors can be `.pop()`'d off of the array
64
+ * and logged / handled as desired. Errors `.pop()`'d off of the array
65
+ * will no longer be available in the array on the next check.
66
+ *
67
+ * @returns Reference to the errors array
68
+ */
69
+ get errors(): Errors<Element>;
70
+ /**
71
+ * Accept a request for sending in the background if a concurrency slot is available.
72
+ * Else, do not return until a concurrency slot is freed up.
73
+ * This provides concurrency background writes with back pressure to prevent
74
+ * the caller from getting too far ahead.
75
+ *
76
+ * MUST await `onIdle` for background `mappers`s to finish
77
+ * @param item
78
+ */
79
+ enqueue(item: Element): Promise<void>;
80
+ /**
81
+ * Wait for all background `mapper`s to finish.
82
+ * MUST be called before exit to ensure no lost writes.
83
+ */
84
+ onIdle(): Promise<void>;
85
+ /**
86
+ * Indicates if all background `mapper`s have finished.
87
+ *
88
+ * @returns true if .onIdle() has been called and finished all background writes
89
+ */
90
+ get isIdle(): boolean;
91
+ }
92
+ export {};
93
+ //# sourceMappingURL=iterable-queue-mapper-simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper-simple.d.ts","sourceRoot":"","sources":["../../src/iterable-queue-mapper-simple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,KAAK,MAAM,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,KAAK,CAAA;CAAE,EAAE,CAAC;AAI/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,yBAAyB,CAAC,OAAO;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;;;;;OAaG;gBAED,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAC7B,OAAO,GAAE;QACP;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB;YAYM,cAAc;YAUd,MAAM;IAUpB;;;;;;;;;;;OAWG;IACH,IAAW,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAEnC;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAWpC;;;;OAIG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;CACF"}
@@ -4,19 +4,45 @@ exports.IterableQueueMapperSimple = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const iterable_queue_mapper_1 = require("./iterable-queue-mapper");
6
6
  const NoResult = Symbol('noresult');
7
+ /**
8
+ * Accepts queue items via `enqueue` and calls the `mapper` on them
9
+ * with specified concurrency, storing the
10
+ * `mapper` result in a queue of specified max size, before
11
+ * being iterated / read by the caller. The `enqueue` method will block if
12
+ * the queue is full, until an item is read.
13
+ *
14
+ * @remarks
15
+ *
16
+ * Note: the name is somewhat of a misnomer as this wraps `IterableQueueMapper`
17
+ * but is not itself an `Iterable`.
18
+ *
19
+ * Accepts items for mapping in the background, discards the results,
20
+ * but accumulates exceptions in the `errors` property.
21
+ *
22
+ * Allows up to `concurrency` mappers to be in progress before
23
+ * `enqueue` will block until a mapper completes.
24
+ *
25
+ * @category Enqueue Input
26
+ */
7
27
  class IterableQueueMapperSimple {
8
28
  /**
9
- * Accepts items for mapping in the background.
29
+ * Create a new `IterableQueueMapperSimple`
10
30
  *
11
- * Allows up to `concurrency` mappers to be in progress before
12
- * `enqueue` will block until a mapper completes.
31
+ * @param mapper Function which is called for every item in `input`.
32
+ * Expected to return a `Promise` or value.
13
33
  *
14
- * @param opts.concurrency - Number of items to accept for mapping before requiring the caller to wait for one to complete. - Default 4
34
+ * The `mapper` *should* handle all errors and not allow an error to be thrown
35
+ * out of the `mapper` function as this enables the best handling of errors
36
+ * closest to the time that they occur.
37
+ *
38
+ * If the `mapper` function does allow an error to be thrown then the
39
+ * errors will be accumulated in the `errors` property.
40
+ * @param options IterableQueueMapperSimple options
15
41
  */
16
- constructor(mapper, opts = {}) {
42
+ constructor(mapper, options = {}) {
17
43
  this._errors = [];
18
44
  this._isIdle = false;
19
- const { concurrency = 4 } = opts;
45
+ const { concurrency = 4 } = options;
20
46
  this._mapper = mapper;
21
47
  this.worker = this.worker.bind(this);
22
48
  this._writer = new iterable_queue_mapper_1.IterableQueueMapper(this.worker, { concurrency, maxUnread: concurrency });
@@ -41,13 +67,22 @@ class IterableQueueMapperSimple {
41
67
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
68
  }
43
69
  catch (error) {
44
- this._errors.push(error);
70
+ this._errors.push({ item, error });
45
71
  }
46
72
  return NoResult;
47
73
  });
48
74
  }
49
75
  /**
50
- * Accumulated errors from background `send`'s
76
+ * Accumulated errors from background `mappers`s
77
+ *
78
+ * @remarks
79
+ *
80
+ * Note that this property can be periodically checked
81
+ * during processing and errors can be `.pop()`'d off of the array
82
+ * and logged / handled as desired. Errors `.pop()`'d off of the array
83
+ * will no longer be available in the array on the next check.
84
+ *
85
+ * @returns Reference to the errors array
51
86
  */
52
87
  get errors() {
53
88
  return this._errors;
@@ -58,7 +93,7 @@ class IterableQueueMapperSimple {
58
93
  * This provides concurrency background writes with back pressure to prevent
59
94
  * the caller from getting too far ahead.
60
95
  *
61
- * MUST await `onIdle` for background `send`'s to finish
96
+ * MUST await `onIdle` for background `mappers`s to finish
62
97
  * @param item
63
98
  */
64
99
  enqueue(item) {
@@ -68,7 +103,7 @@ class IterableQueueMapperSimple {
68
103
  });
69
104
  }
70
105
  /**
71
- * Wait for all background writes to finish.
106
+ * Wait for all background `mapper`s to finish.
72
107
  * MUST be called before exit to ensure no lost writes.
73
108
  */
74
109
  onIdle() {
@@ -82,6 +117,8 @@ class IterableQueueMapperSimple {
82
117
  });
83
118
  }
84
119
  /**
120
+ * Indicates if all background `mapper`s have finished.
121
+ *
85
122
  * @returns true if .onIdle() has been called and finished all background writes
86
123
  */
87
124
  get isIdle() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper-simple.js","sourceRoot":"","sources":["../../src/iterable-queue-mapper-simple.ts"],"names":[],"mappings":";;;;AACA,mEAA8D;AAK9D,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,yBAAyB;IAOpC;;;;;;;;;;;;;OAaG;IACH,YACE,MAA6B,EAC7B,UAMI,EAAE;QA3BS,YAAO,GAAoB,EAAE,CAAC;QAGvC,YAAO,GAAG,KAAK,CAAC;QA0BtB,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAE7F,6BAA6B;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACrC,CAAC;IAEa,cAAc;;YAC1B,6DAA6D;YAC7D,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACzB,+BAA+B;gBAC/B,oEAAoE;gBACpE,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAClC;QACH,CAAC;KAAA;IAEa,MAAM,CAAC,IAAa,EAAE,KAAa;;YAC/C,IAAI;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChC,8DAA8D;aAC/D;YAAC,OAAO,KAAU,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aACpC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAED;;;;;;;;;;;OAWG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,IAAa;;YAChC,4EAA4E;YAC5E,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;KAAA;IAED;;;OAGG;IACU,MAAM;;YACjB,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YAEzB,4CAA4C;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,IAAI,CAAC,KAAK,CAAC;YAEjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;KAAA;IAED;;;;OAIG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAlHD,8DAkHC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper-simple.test.d.ts","sourceRoot":"","sources":["../../src/iterable-queue-mapper-simple.test.ts"],"names":[],"mappings":""}
@@ -43,8 +43,8 @@ describe('IterableQueueMapperSimple', () => {
43
43
  yield backgroundWriter.onIdle();
44
44
  expect(backgroundWriter.isIdle).toBe(true);
45
45
  expect(backgroundWriter.errors.length).toBe(5);
46
- expect(backgroundWriter.errors[0]).toBeInstanceOf(Error);
47
- expect(backgroundWriter.errors[0].message).toBe('stop this now');
46
+ expect(backgroundWriter.errors[0].error).toBeInstanceOf(Error);
47
+ expect(backgroundWriter.errors[0].error.message).toBe('stop this now');
48
48
  // Show that double onIdle() does not hang or cause an error
49
49
  yield backgroundWriter.onIdle();
50
50
  expect(backgroundWriter.isIdle).toBe(true);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper-simple.test.js","sourceRoot":"","sources":["../../src/iterable-queue-mapper-simple.test.ts"],"names":[],"mappings":";;;AAAA,8BAA8B;AAC9B,+BAAiC;AACjC,iFAA2E;AAE3E,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC;AAEpC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAS,EAAE;QACjD,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAO,IAAY,EAAiB,EAAE;YAC3D,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAA,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,wDAAyB,CAAC,MAAM,CAAC,CAAC;QAE/D,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAElC,sFAAsF;QACtF,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAEhC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAS,EAAE;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAO,IAAY,EAAiB,EAAE;YAC3D,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC,CAAA,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,wDAAyB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;gBAC3D,MAAM;aACP;SACF;QACD,sFAAsF;QACtF,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,CAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAElF,4DAA4D;QAC5D,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAEhC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACjE,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAS,EAAE;QAClE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAO,IAAY,EAAiB,EAAE;YAC3D,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAA,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,wDAAyB,CAAC,MAAM,EAAE;YAC7D,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QAEH,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzC,sFAAsF;QACtF,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAEhC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAS,EAAE;QAC7D,MAAM,eAAe,GAAG,GAAG,CAAC;QAC5B,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAO,IAAY,EAAiB,EAAE;YAC3D,MAAM,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/B,CAAC,CAAA,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,wDAAyB,CAAC,MAAM,EAAE;YAC7D,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAE7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzC,sEAAsE;QACtE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QAEvE,sFAAsF;QACtF,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAEhC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC;QAEnE,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { Mapper } from './iterable-mapper';
2
+ export interface IterableQueueMapperOptions {
3
+ /**
4
+ * Number of concurrently pending promises returned by `mapper`.
5
+ *
6
+ * Must be an integer from 1 and up or `Infinity`, must be <= `maxUnread`.
7
+ *
8
+ * @default 4
9
+ */
10
+ readonly concurrency?: number;
11
+ /**
12
+ * Number of pending unread iterable items.
13
+ *
14
+ * Must be an integer from 1 and up or `Infinity`, must be >= `concurrency`.
15
+ *
16
+ * @default 8
17
+ */
18
+ readonly maxUnread?: number;
19
+ /**
20
+ * When set to `false`, instead of stopping when a promise rejects, it will wait for all the promises to settle and then reject with an [aggregated error](https://github.com/sindresorhus/aggregate-error) containing all the errors from the rejected promises.
21
+ *
22
+ * @default true
23
+ */
24
+ readonly stopOnMapperError?: boolean;
25
+ }
26
+ /**
27
+ * Accepts queue items via `enqueue` and calls the `mapper` on them
28
+ * with specified concurrency, storing the
29
+ * `mapper` result in a queue of specified max size, before
30
+ * being iterated / read by the caller. The `enqueue` method will block if
31
+ * the queue is full, until an item is read.
32
+ *
33
+ * @remarks
34
+ *
35
+ * This allows performing a concurrent mapping with
36
+ * back pressure for items added after queue creation
37
+ * via a method call.
38
+ *
39
+ * Because items are added via a method call it is possible to
40
+ * chain an `IterableMapper` that prefetches files and processes them,
41
+ * with an `IterableQueueMapper` that processes the results of the
42
+ * `mapper` function of the `IterableMapper`.
43
+ *
44
+ * Typical use case is for a `background uploader` that prevents
45
+ * the producer from racing ahead of the upload process, consuming
46
+ * too much memory or disk space. As items are ready for upload
47
+ * they are added to the queue with the `enqueue` method, which is
48
+ * `await`ed by the caller. If the queue has room then `enqueue`
49
+ * will return immediately, otherwise it will block until there is room.
50
+ *
51
+ * @category Enqueue Input
52
+ */
53
+ export declare class IterableQueueMapper<Element, NewElement> implements AsyncIterable<NewElement> {
54
+ private _iterableMapper;
55
+ private _sourceIterable;
56
+ /**
57
+ * Create a new `IterableQueueMapper`
58
+ *
59
+ * @param mapper Function which is called for every item in `input`.
60
+ * Expected to return a `Promise` or value.
61
+ *
62
+ * The `mapper` *should* handle all errors and not allow an error to be thrown
63
+ * out of the `mapper` function as this enables the best handling of errors
64
+ * closest to the time that they occur.
65
+ *
66
+ * If the `mapper` function does allow an error to be thrown then the
67
+ * `stopOnMapperError` option controls the behavior:
68
+ * - `stopOnMapperError`: `true` - will throw the error
69
+ * out of `next` or the `AsyncIterator` returned from `[Symbol.asyncIterator]`
70
+ * and stop processing.
71
+ * - `stopOnMapperError`: `false` - will continue processing
72
+ * and accumulate the errors to be thrown from `next` or the `AsyncIterator`
73
+ * returned from `[Symbol.asyncIterator]` when all items have been processed.
74
+ * @param options IterableQueueMapper options
75
+ */
76
+ constructor(mapper: Mapper<Element, NewElement>, options?: IterableQueueMapperOptions);
77
+ [Symbol.asyncIterator](): AsyncIterator<NewElement>;
78
+ /**
79
+ * Used by the iterator returned from [Symbol.asyncIterator]
80
+ * Called every time an item is needed
81
+ * @returns Iterator result
82
+ */
83
+ next(): Promise<IteratorResult<NewElement>>;
84
+ /**
85
+ * Add an item to the queue, wait if the queue is full.
86
+ *
87
+ * @param item Element to add
88
+ */
89
+ enqueue(item: Element): Promise<void>;
90
+ /**
91
+ * Indicate that no more items will be enqueued.
92
+ *
93
+ * This releases all readers blocked on `enqueue`
94
+ */
95
+ done(): void;
96
+ }
97
+ //# sourceMappingURL=iterable-queue-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper.d.ts","sourceRoot":"","sources":["../../src/iterable-queue-mapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3D,MAAM,WAAW,0BAA0B;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAE,YAAW,aAAa,CAAC,UAAU,CAAC;IACxF,OAAO,CAAC,eAAe,CAAsC;IAE7D,OAAO,CAAC,eAAe,CAAyB;IAEhD;;;;;;;;;;;;;;;;;;;OAmBG;gBACS,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAE,0BAA+B;IAOlF,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC;IAI1D;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAIxD;;;;OAIG;IACU,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;OAIG;IACI,IAAI,IAAI,IAAI;CAGpB"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IterableQueueMapper = void 0;
4
+ const tslib_1 = require("tslib");
5
+ //
6
+ // 2021-08-25 - Initially based on: https://raw.githubusercontent.com/sindresorhus/p-map/main/index.js
7
+ //
8
+ const iterable_mapper_1 = require("./iterable-mapper");
9
+ const iterable_queue_1 = require("./iterable-queue");
10
+ /**
11
+ * Accepts queue items via `enqueue` and calls the `mapper` on them
12
+ * with specified concurrency, storing the
13
+ * `mapper` result in a queue of specified max size, before
14
+ * being iterated / read by the caller. The `enqueue` method will block if
15
+ * the queue is full, until an item is read.
16
+ *
17
+ * @remarks
18
+ *
19
+ * This allows performing a concurrent mapping with
20
+ * back pressure for items added after queue creation
21
+ * via a method call.
22
+ *
23
+ * Because items are added via a method call it is possible to
24
+ * chain an `IterableMapper` that prefetches files and processes them,
25
+ * with an `IterableQueueMapper` that processes the results of the
26
+ * `mapper` function of the `IterableMapper`.
27
+ *
28
+ * Typical use case is for a `background uploader` that prevents
29
+ * the producer from racing ahead of the upload process, consuming
30
+ * too much memory or disk space. As items are ready for upload
31
+ * they are added to the queue with the `enqueue` method, which is
32
+ * `await`ed by the caller. If the queue has room then `enqueue`
33
+ * will return immediately, otherwise it will block until there is room.
34
+ *
35
+ * @category Enqueue Input
36
+ */
37
+ class IterableQueueMapper {
38
+ /**
39
+ * Create a new `IterableQueueMapper`
40
+ *
41
+ * @param mapper Function which is called for every item in `input`.
42
+ * Expected to return a `Promise` or value.
43
+ *
44
+ * The `mapper` *should* handle all errors and not allow an error to be thrown
45
+ * out of the `mapper` function as this enables the best handling of errors
46
+ * closest to the time that they occur.
47
+ *
48
+ * If the `mapper` function does allow an error to be thrown then the
49
+ * `stopOnMapperError` option controls the behavior:
50
+ * - `stopOnMapperError`: `true` - will throw the error
51
+ * out of `next` or the `AsyncIterator` returned from `[Symbol.asyncIterator]`
52
+ * and stop processing.
53
+ * - `stopOnMapperError`: `false` - will continue processing
54
+ * and accumulate the errors to be thrown from `next` or the `AsyncIterator`
55
+ * returned from `[Symbol.asyncIterator]` when all items have been processed.
56
+ * @param options IterableQueueMapper options
57
+ */
58
+ constructor(mapper, options = {}) {
59
+ this._sourceIterable = new iterable_queue_1.IterableQueue({
60
+ maxUnread: 0,
61
+ });
62
+ this._iterableMapper = new iterable_mapper_1.IterableMapper(this._sourceIterable, mapper, options);
63
+ }
64
+ [Symbol.asyncIterator]() {
65
+ return this;
66
+ }
67
+ /**
68
+ * Used by the iterator returned from [Symbol.asyncIterator]
69
+ * Called every time an item is needed
70
+ * @returns Iterator result
71
+ */
72
+ next() {
73
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
+ return this._iterableMapper.next();
75
+ });
76
+ }
77
+ /**
78
+ * Add an item to the queue, wait if the queue is full.
79
+ *
80
+ * @param item Element to add
81
+ */
82
+ enqueue(item) {
83
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
84
+ yield this._sourceIterable.enqueue(item);
85
+ });
86
+ }
87
+ /**
88
+ * Indicate that no more items will be enqueued.
89
+ *
90
+ * This releases all readers blocked on `enqueue`
91
+ */
92
+ done() {
93
+ this._sourceIterable.done();
94
+ }
95
+ }
96
+ exports.IterableQueueMapper = IterableQueueMapper;
97
+ //# sourceMappingURL=iterable-queue-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper.js","sourceRoot":"","sources":["../../src/iterable-queue-mapper.ts"],"names":[],"mappings":";;;;AAAA,EAAE;AACF,sGAAsG;AACtG,EAAE;AACF,uDAA2D;AAC3D,qDAAiD;AA6BjD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,mBAAmB;IAK9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,MAAmC,EAAE,UAAsC,EAAE;QACvF,IAAI,CAAC,eAAe,GAAG,IAAI,8BAAa,CAAC;YACvC,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAc,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAEM,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACU,IAAI;;YACf,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;KAAA;IAED;;;;OAIG;IACU,OAAO,CAAC,IAAa;;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;KAAA;IAED;;;;OAIG;IACI,IAAI;QACT,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;CACF;AA9DD,kDA8DC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper.test.d.ts","sourceRoot":"","sources":["../../src/iterable-queue-mapper.test.ts"],"names":[],"mappings":""}
@@ -40,18 +40,13 @@ describe('IterableQueueMapper', () => {
40
40
  let lastTotal = 0;
41
41
  let loopCount = 0;
42
42
  try {
43
- for (var _d = true, prefetcher_1 = tslib_1.__asyncValues(prefetcher), prefetcher_1_1; prefetcher_1_1 = yield prefetcher_1.next(), _a = prefetcher_1_1.done, !_a;) {
43
+ for (var _d = true, prefetcher_1 = tslib_1.__asyncValues(prefetcher), prefetcher_1_1; prefetcher_1_1 = yield prefetcher_1.next(), _a = prefetcher_1_1.done, !_a; _d = true) {
44
44
  _c = prefetcher_1_1.value;
45
45
  _d = false;
46
- try {
47
- const item = _c;
48
- loopCount++;
49
- if (item > lastTotal) {
50
- lastTotal = item;
51
- }
52
- }
53
- finally {
54
- _d = true;
46
+ const item = _c;
47
+ loopCount++;
48
+ if (item > lastTotal) {
49
+ lastTotal = item;
55
50
  }
56
51
  }
57
52
  }
@@ -93,18 +88,13 @@ describe('IterableQueueMapper', () => {
93
88
  let lastTotal = 0;
94
89
  let loopCount = 0;
95
90
  try {
96
- for (var _h = true, prefetcher_2 = tslib_1.__asyncValues(prefetcher), prefetcher_2_1; prefetcher_2_1 = yield prefetcher_2.next(), _e = prefetcher_2_1.done, !_e;) {
91
+ for (var _h = true, prefetcher_2 = tslib_1.__asyncValues(prefetcher), prefetcher_2_1; prefetcher_2_1 = yield prefetcher_2.next(), _e = prefetcher_2_1.done, !_e; _h = true) {
97
92
  _g = prefetcher_2_1.value;
98
93
  _h = false;
99
- try {
100
- const item = _g;
101
- loopCount++;
102
- if (item > lastTotal) {
103
- lastTotal = item;
104
- }
105
- }
106
- finally {
107
- _h = true;
94
+ const item = _g;
95
+ loopCount++;
96
+ if (item > lastTotal) {
97
+ lastTotal = item;
108
98
  }
109
99
  }
110
100
  }
@@ -141,18 +131,13 @@ describe('IterableQueueMapper', () => {
141
131
  let lastSeen = 0;
142
132
  let loopCount = 0;
143
133
  try {
144
- for (var _m = true, prefetcher_3 = tslib_1.__asyncValues(prefetcher), prefetcher_3_1; prefetcher_3_1 = yield prefetcher_3.next(), _j = prefetcher_3_1.done, !_j;) {
134
+ for (var _m = true, prefetcher_3 = tslib_1.__asyncValues(prefetcher), prefetcher_3_1; prefetcher_3_1 = yield prefetcher_3.next(), _j = prefetcher_3_1.done, !_j; _m = true) {
145
135
  _l = prefetcher_3_1.value;
146
136
  _m = false;
147
- try {
148
- const item = _l;
149
- loopCount++;
150
- if (item > lastSeen) {
151
- lastSeen = item;
152
- }
153
- }
154
- finally {
155
- _m = true;
137
+ const item = _l;
138
+ loopCount++;
139
+ if (item > lastSeen) {
140
+ lastSeen = item;
156
141
  }
157
142
  }
158
143
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-queue-mapper.test.js","sourceRoot":"","sources":["../../src/iterable-queue-mapper.test.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,23 @@
1
- import { BlockingQueue } from './blocking-queue';
2
- interface IterableQueueOptions {
3
- /**
4
- * Number of pending unread iterable items.
5
- *
6
- * Must be an integer from 0 and up or `Infinity`, must be >= `concurrency`.
7
- *
8
- * @default 8
9
- */
10
- readonly maxUnread?: number;
11
- }
1
+ import { BlockingQueue, BlockingQueueOptions } from './blocking-queue';
2
+ export type IterableQueueOptions = BlockingQueueOptions;
3
+ /**
4
+ * Exposes an `AsyncIterable` interface for the `BlockingQueue`.
5
+ *
6
+ * @category Low-Level
7
+ */
12
8
  export declare class IterableQueue<Element> extends BlockingQueue<Element> implements AsyncIterable<Element> {
13
9
  /**
14
- *
10
+ * Create a new `IterableQueue`
11
+ * @param options IterableQueue options
15
12
  */
16
13
  constructor(options?: IterableQueueOptions);
17
14
  [Symbol.asyncIterator](): AsyncIterator<Element>;
18
15
  /**
19
16
  * Used by the iterator returned from [Symbol.asyncIterator]
20
17
  * Called every time an item is needed
18
+ *
21
19
  * @returns Iterator result
22
20
  */
23
21
  next(): Promise<IteratorResult<Element>>;
24
22
  }
25
- export {};
26
23
  //# sourceMappingURL=iterable-queue.d.ts.map