@shutterstock/p-map-iterable 0.0.1
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.
- package/LICENSE.md +21 -0
- package/README.md +110 -0
- package/dist/blocking-queue.d.ts +57 -0
- package/dist/blocking-queue.d.ts.map +1 -0
- package/dist/blocking-queue.js +193 -0
- package/dist/blocking-queue.js.map +1 -0
- package/dist/blocking-queue.test.d.ts +2 -0
- package/dist/blocking-queue.test.d.ts.map +1 -0
- package/dist/blocking-queue.test.js +175 -0
- package/dist/blocking-queue.test.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/iterable-mapper.d.ts +104 -0
- package/dist/iterable-mapper.d.ts.map +1 -0
- package/dist/iterable-mapper.js +321 -0
- package/dist/iterable-mapper.js.map +1 -0
- package/dist/iterable-mapper.test.d.ts +2 -0
- package/dist/iterable-mapper.test.d.ts.map +1 -0
- package/dist/iterable-mapper.test.js +1421 -0
- package/dist/iterable-mapper.test.js.map +1 -0
- package/dist/iterable-queue-mapper-simple.d.ts +49 -0
- package/dist/iterable-queue-mapper-simple.d.ts.map +1 -0
- package/dist/iterable-queue-mapper-simple.js +92 -0
- package/dist/iterable-queue-mapper-simple.js.map +1 -0
- package/dist/iterable-queue-mapper-simple.test.d.ts +2 -0
- package/dist/iterable-queue-mapper-simple.test.d.ts.map +1 -0
- package/dist/iterable-queue-mapper-simple.test.js +103 -0
- package/dist/iterable-queue-mapper-simple.test.js.map +1 -0
- package/dist/iterable-queue-mapper.d.ts +73 -0
- package/dist/iterable-queue-mapper.d.ts.map +1 -0
- package/dist/iterable-queue-mapper.js +72 -0
- package/dist/iterable-queue-mapper.js.map +1 -0
- package/dist/iterable-queue-mapper.test.d.ts +2 -0
- package/dist/iterable-queue-mapper.test.d.ts.map +1 -0
- package/dist/iterable-queue-mapper.test.js +174 -0
- package/dist/iterable-queue-mapper.test.js.map +1 -0
- package/dist/iterable-queue.d.ts +26 -0
- package/dist/iterable-queue.d.ts.map +1 -0
- package/dist/iterable-queue.js +34 -0
- package/dist/iterable-queue.js.map +1 -0
- package/dist/iterable-queue.test.d.ts +2 -0
- package/dist/iterable-queue.test.d.ts.map +1 -0
- package/dist/iterable-queue.test.js +252 -0
- package/dist/iterable-queue.test.js.map +1 -0
- package/dist/queue.d.ts +9 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +33 -0
- package/dist/queue.js.map +1 -0
- package/dist/queue.test.d.ts +2 -0
- package/dist/queue.test.d.ts.map +1 -0
- package/dist/queue.test.js +75 -0
- package/dist/queue.test.js.map +1 -0
- package/package.json +45 -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,49 @@
|
|
|
1
|
+
import { Mapper } from './iterable-mapper';
|
|
2
|
+
type Errors = (string | {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
} | Error)[];
|
|
5
|
+
export declare class IterableQueueMapperSimple<Element> {
|
|
6
|
+
private readonly _writer;
|
|
7
|
+
private readonly _errors;
|
|
8
|
+
private readonly _done;
|
|
9
|
+
private readonly _mapper;
|
|
10
|
+
private _isIdle;
|
|
11
|
+
/**
|
|
12
|
+
* Accepts items for mapping in the background.
|
|
13
|
+
*
|
|
14
|
+
* Allows up to `concurrency` mappers to be in progress before
|
|
15
|
+
* `enqueue` will block until a mapper completes.
|
|
16
|
+
*
|
|
17
|
+
* @param opts.concurrency - Number of items to accept for mapping before requiring the caller to wait for one to complete. - Default 4
|
|
18
|
+
*/
|
|
19
|
+
constructor(mapper: Mapper<Element, void>, opts?: {
|
|
20
|
+
concurrency?: number;
|
|
21
|
+
});
|
|
22
|
+
private discardResults;
|
|
23
|
+
private worker;
|
|
24
|
+
/**
|
|
25
|
+
* Accumulated errors from background `send`'s
|
|
26
|
+
*/
|
|
27
|
+
get errors(): Errors;
|
|
28
|
+
/**
|
|
29
|
+
* Accept a request for sending in the background if a concurrency slot is available.
|
|
30
|
+
* Else, do not return until a concurrency slot is freed up.
|
|
31
|
+
* This provides concurrency background writes with back pressure to prevent
|
|
32
|
+
* the caller from getting too far ahead.
|
|
33
|
+
*
|
|
34
|
+
* MUST await `onIdle` for background `send`'s to finish
|
|
35
|
+
* @param item
|
|
36
|
+
*/
|
|
37
|
+
enqueue(item: Element): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Wait for all background writes to finish.
|
|
40
|
+
* MUST be called before exit to ensure no lost writes.
|
|
41
|
+
*/
|
|
42
|
+
onIdle(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* @returns true if .onIdle() has been called and finished all background writes
|
|
45
|
+
*/
|
|
46
|
+
get isIdle(): boolean;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# 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,GAAG,CAAC,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AAI1D,qBAAa,yBAAyB,CAAC,OAAO;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgD;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;OAOG;gBAES,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;YAWhE,cAAc;YAUd,MAAM;IAUpB;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAWpC;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;CACF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IterableQueueMapperSimple = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const iterable_queue_mapper_1 = require("./iterable-queue-mapper");
|
|
6
|
+
const NoResult = Symbol('noresult');
|
|
7
|
+
class IterableQueueMapperSimple {
|
|
8
|
+
/**
|
|
9
|
+
* Accepts items for mapping in the background.
|
|
10
|
+
*
|
|
11
|
+
* Allows up to `concurrency` mappers to be in progress before
|
|
12
|
+
* `enqueue` will block until a mapper completes.
|
|
13
|
+
*
|
|
14
|
+
* @param opts.concurrency - Number of items to accept for mapping before requiring the caller to wait for one to complete. - Default 4
|
|
15
|
+
*/
|
|
16
|
+
constructor(mapper, opts = {}) {
|
|
17
|
+
this._errors = [];
|
|
18
|
+
this._isIdle = false;
|
|
19
|
+
const { concurrency = 4 } = opts;
|
|
20
|
+
this._mapper = mapper;
|
|
21
|
+
this.worker = this.worker.bind(this);
|
|
22
|
+
this._writer = new iterable_queue_mapper_1.IterableQueueMapper(this.worker, { concurrency, maxUnread: concurrency });
|
|
23
|
+
// Discard all of the results
|
|
24
|
+
this._done = this.discardResults();
|
|
25
|
+
}
|
|
26
|
+
discardResults() {
|
|
27
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
let item = yield this._writer.next();
|
|
30
|
+
while (item.done !== true) {
|
|
31
|
+
// Just discard all the results
|
|
32
|
+
// If the user cares about the results they should be iterating them
|
|
33
|
+
item = yield this._writer.next();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
worker(item, index) {
|
|
38
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
try {
|
|
40
|
+
yield this._mapper(item, index);
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
this._errors.push(error);
|
|
45
|
+
}
|
|
46
|
+
return NoResult;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Accumulated errors from background `send`'s
|
|
51
|
+
*/
|
|
52
|
+
get errors() {
|
|
53
|
+
return this._errors;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Accept a request for sending in the background if a concurrency slot is available.
|
|
57
|
+
* Else, do not return until a concurrency slot is freed up.
|
|
58
|
+
* This provides concurrency background writes with back pressure to prevent
|
|
59
|
+
* the caller from getting too far ahead.
|
|
60
|
+
*
|
|
61
|
+
* MUST await `onIdle` for background `send`'s to finish
|
|
62
|
+
* @param item
|
|
63
|
+
*/
|
|
64
|
+
enqueue(item) {
|
|
65
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
// Return immediately or wait for a slot to free up in the background writer
|
|
67
|
+
yield this._writer.enqueue(item);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Wait for all background writes to finish.
|
|
72
|
+
* MUST be called before exit to ensure no lost writes.
|
|
73
|
+
*/
|
|
74
|
+
onIdle() {
|
|
75
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
if (this._isIdle)
|
|
77
|
+
return;
|
|
78
|
+
// Indicate that we're done writing requests
|
|
79
|
+
this._writer.done();
|
|
80
|
+
yield this._done;
|
|
81
|
+
this._isIdle = true;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @returns true if .onIdle() has been called and finished all background writes
|
|
86
|
+
*/
|
|
87
|
+
get isIdle() {
|
|
88
|
+
return this._isIdle;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.IterableQueueMapperSimple = IterableQueueMapperSimple;
|
|
92
|
+
//# sourceMappingURL=iterable-queue-mapper-simple.js.map
|
|
@@ -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,MAAa,yBAAyB;IAOpC;;;;;;;OAOG;IAEH,YAAY,MAA6B,EAAE,OAAiC,EAAE;QAd7D,YAAO,GAAW,EAAE,CAAC;QAG9B,YAAO,GAAG,KAAK,CAAC;QAYtB,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;QAEjC,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,KAAK,CAAC,CAAC;aAC1B;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAED;;OAEG;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;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAzFD,8DAyFC"}
|
|
@@ -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":""}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
/// <reference types="jest" />
|
|
5
|
+
const util_1 = require("util");
|
|
6
|
+
const iterable_queue_mapper_simple_1 = require("./iterable-queue-mapper-simple");
|
|
7
|
+
const sleep = (0, util_1.promisify)(setTimeout);
|
|
8
|
+
describe('IterableQueueMapperSimple', () => {
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
jest.resetAllMocks();
|
|
11
|
+
});
|
|
12
|
+
it('single success works - w/ retrier', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
+
const mapper = jest.fn((item) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
yield sleep(200);
|
|
16
|
+
}));
|
|
17
|
+
const backgroundWriter = new iterable_queue_mapper_simple_1.IterableQueueMapperSimple(mapper);
|
|
18
|
+
yield backgroundWriter.enqueue(1);
|
|
19
|
+
// Need to wait until the backgroundWriter is idle (has finished any pending requests)
|
|
20
|
+
yield backgroundWriter.onIdle();
|
|
21
|
+
expect(mapper.mock.calls.length).toBe(1);
|
|
22
|
+
expect(backgroundWriter.errors.length).toBe(0);
|
|
23
|
+
expect(backgroundWriter.isIdle).toBe(true);
|
|
24
|
+
}));
|
|
25
|
+
it('errors caught and exposed', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
const startTime = Date.now();
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
|
+
const mapper = jest.fn((item) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
yield sleep(200);
|
|
30
|
+
throw new Error('stop this now');
|
|
31
|
+
}));
|
|
32
|
+
const backgroundWriter = new iterable_queue_mapper_simple_1.IterableQueueMapperSimple(mapper, { concurrency: 4 });
|
|
33
|
+
for (let i = 0; i < 10; i++) {
|
|
34
|
+
yield backgroundWriter.enqueue(1);
|
|
35
|
+
if (backgroundWriter.errors.length !== 0) {
|
|
36
|
+
expect(i).toBe(4);
|
|
37
|
+
expect(Date.now() - startTime).toBeGreaterThanOrEqual(200);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Need to wait until the backgroundWriter is idle (has finished any pending requests)
|
|
42
|
+
expect(backgroundWriter.isIdle).toBe(false);
|
|
43
|
+
yield backgroundWriter.onIdle();
|
|
44
|
+
expect(backgroundWriter.isIdle).toBe(true);
|
|
45
|
+
expect(backgroundWriter.errors.length).toBe(5);
|
|
46
|
+
expect(backgroundWriter.errors[0]).toBeInstanceOf(Error);
|
|
47
|
+
expect(backgroundWriter.errors[0].message).toBe('stop this now');
|
|
48
|
+
// Show that double onIdle() does not hang or cause an error
|
|
49
|
+
yield backgroundWriter.onIdle();
|
|
50
|
+
expect(backgroundWriter.isIdle).toBe(true);
|
|
51
|
+
expect(mapper.mock.calls.length).toBe(5);
|
|
52
|
+
expect(Date.now() - startTime).toBeGreaterThanOrEqual(2 * 200);
|
|
53
|
+
}));
|
|
54
|
+
it('multiple success works - concurrency 1, w/ retrier', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
56
|
+
const mapper = jest.fn((item) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
+
yield sleep(200);
|
|
58
|
+
}));
|
|
59
|
+
const backgroundWriter = new iterable_queue_mapper_simple_1.IterableQueueMapperSimple(mapper, {
|
|
60
|
+
concurrency: 1,
|
|
61
|
+
});
|
|
62
|
+
yield backgroundWriter.enqueue(1);
|
|
63
|
+
yield backgroundWriter.enqueue(2);
|
|
64
|
+
expect(mapper.mock.calls.length).toBe(2);
|
|
65
|
+
// Need to wait until the backgroundWriter is idle (has finished any pending requests)
|
|
66
|
+
expect(backgroundWriter.isIdle).toBe(false);
|
|
67
|
+
yield backgroundWriter.onIdle();
|
|
68
|
+
expect(backgroundWriter.isIdle).toBe(true);
|
|
69
|
+
expect(mapper.mock.calls.length).toBe(2);
|
|
70
|
+
expect(backgroundWriter.errors.length).toBe(0);
|
|
71
|
+
}));
|
|
72
|
+
it('concurrency 4 sends 4 concurrently then waits', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
const sleepDurationMs = 500;
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
75
|
+
const mapper = jest.fn((item) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
76
|
+
yield sleep(sleepDurationMs);
|
|
77
|
+
}));
|
|
78
|
+
const backgroundWriter = new iterable_queue_mapper_simple_1.IterableQueueMapperSimple(mapper, {
|
|
79
|
+
concurrency: 4,
|
|
80
|
+
});
|
|
81
|
+
// First 4 added should not wait at all
|
|
82
|
+
const startTime = Date.now();
|
|
83
|
+
yield backgroundWriter.enqueue(1);
|
|
84
|
+
yield backgroundWriter.enqueue(2);
|
|
85
|
+
yield backgroundWriter.enqueue(3);
|
|
86
|
+
yield backgroundWriter.enqueue(4);
|
|
87
|
+
expect(Date.now() - startTime).toBeLessThan(sleepDurationMs);
|
|
88
|
+
expect(mapper.mock.calls.length).toBe(4);
|
|
89
|
+
// Next one added should have had to wait for at least one wait period
|
|
90
|
+
yield backgroundWriter.enqueue(5);
|
|
91
|
+
expect(mapper.mock.calls.length).toBe(5);
|
|
92
|
+
expect(Date.now() - startTime).toBeGreaterThanOrEqual(sleepDurationMs);
|
|
93
|
+
// Need to wait until the backgroundWriter is idle (has finished any pending requests)
|
|
94
|
+
expect(backgroundWriter.isIdle).toBe(false);
|
|
95
|
+
yield backgroundWriter.onIdle();
|
|
96
|
+
expect(backgroundWriter.isIdle).toBe(true);
|
|
97
|
+
expect(Date.now() - startTime).toBeGreaterThanOrEqual(2 * sleepDurationMs);
|
|
98
|
+
expect(Date.now() - startTime).toBeLessThan(2.2 * sleepDurationMs);
|
|
99
|
+
expect(mapper).toBeCalledTimes(5);
|
|
100
|
+
expect(backgroundWriter.errors.length).toBe(0);
|
|
101
|
+
}));
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=iterable-queue-mapper-simple.test.js.map
|
|
@@ -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,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,CAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE5E,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,73 @@
|
|
|
1
|
+
import { Mapper } from './iterable-mapper';
|
|
2
|
+
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
|
+
export declare class IterableQueueMapper<Element, NewElement> implements AsyncIterable<NewElement> {
|
|
27
|
+
private _iterableMapper;
|
|
28
|
+
private _sourceIterable;
|
|
29
|
+
/**
|
|
30
|
+
* Iterates over a source iterable with specified concurrency,
|
|
31
|
+
* calling the `mapper` on each iterated item, and storing the
|
|
32
|
+
* `mapper` result in a queue of specified max size, before
|
|
33
|
+
* being iterated / read by the caller.
|
|
34
|
+
*
|
|
35
|
+
* Essentially - This allows performing a concurrent mapping with
|
|
36
|
+
* back pressure (won't iterate all source items if the consumer is
|
|
37
|
+
* not reading).
|
|
38
|
+
*
|
|
39
|
+
* Typical use case is for a `prefetcher` that ensures that items
|
|
40
|
+
* are always ready for the consumer but that large numbers of items
|
|
41
|
+
* are not processed before the consumer is ready for them.
|
|
42
|
+
*
|
|
43
|
+
* @param input - Iterated over concurrently in the `mapper` function.
|
|
44
|
+
* @param mapper - Function which is called for every item in `input`. Expected to return a `Promise` or value.
|
|
45
|
+
* @param options - { concurrency: max mappers to run in parallel,
|
|
46
|
+
* maxUnread: max unread mapped results - this waits for results to be read,
|
|
47
|
+
* stopOnError: return if a mapper throws - note that any other running mappers will then not be able to return results
|
|
48
|
+
* }
|
|
49
|
+
* @returns A `Promise` that is fulfilled when all promises in `input` and ones returned from `mapper` are fulfilled, or rejects if any of the promises reject. The fulfilled value is an `Array` of the fulfilled values returned from `mapper` in `input` order.
|
|
50
|
+
*/
|
|
51
|
+
constructor(mapper: Mapper<Element, NewElement>, options?: IterableQueueMapperOptions);
|
|
52
|
+
[Symbol.asyncIterator](): AsyncIterator<NewElement>;
|
|
53
|
+
/**
|
|
54
|
+
* Used by the iterator returned from [Symbol.asyncIterator]
|
|
55
|
+
* Called every time an item is needed
|
|
56
|
+
* @returns Iterator result
|
|
57
|
+
*/
|
|
58
|
+
next(): Promise<IteratorResult<NewElement>>;
|
|
59
|
+
/**
|
|
60
|
+
* Add an item to the queue, wait if the queue is full.
|
|
61
|
+
*
|
|
62
|
+
* @param item Element to add
|
|
63
|
+
*/
|
|
64
|
+
enqueue(item: Element): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Indicate that no more items will be enqueued.
|
|
67
|
+
*
|
|
68
|
+
* This releases all readers blocked on `enqueue`
|
|
69
|
+
*/
|
|
70
|
+
done(): void;
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
73
|
+
//# 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,UAAU,0BAA0B;IAClC;;;;;;YAME;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;YAME;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;YAIE;IACF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,qBAAa,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAE,YAAW,aAAa,CAAC,UAAU,CAAC;IACxF,OAAO,CAAC,eAAe,CAAsC;IAE7D,OAAO,CAAC,eAAe,CAAyB;IAEhD;;;;;;;;;;;;;;;;;;;;;OAqBG;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,72 @@
|
|
|
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
|
+
class IterableQueueMapper {
|
|
11
|
+
/**
|
|
12
|
+
* Iterates over a source iterable with specified concurrency,
|
|
13
|
+
* calling the `mapper` on each iterated item, and storing the
|
|
14
|
+
* `mapper` result in a queue of specified max size, before
|
|
15
|
+
* being iterated / read by the caller.
|
|
16
|
+
*
|
|
17
|
+
* Essentially - This allows performing a concurrent mapping with
|
|
18
|
+
* back pressure (won't iterate all source items if the consumer is
|
|
19
|
+
* not reading).
|
|
20
|
+
*
|
|
21
|
+
* Typical use case is for a `prefetcher` that ensures that items
|
|
22
|
+
* are always ready for the consumer but that large numbers of items
|
|
23
|
+
* are not processed before the consumer is ready for them.
|
|
24
|
+
*
|
|
25
|
+
* @param input - Iterated over concurrently in the `mapper` function.
|
|
26
|
+
* @param mapper - Function which is called for every item in `input`. Expected to return a `Promise` or value.
|
|
27
|
+
* @param options - { concurrency: max mappers to run in parallel,
|
|
28
|
+
* maxUnread: max unread mapped results - this waits for results to be read,
|
|
29
|
+
* stopOnError: return if a mapper throws - note that any other running mappers will then not be able to return results
|
|
30
|
+
* }
|
|
31
|
+
* @returns A `Promise` that is fulfilled when all promises in `input` and ones returned from `mapper` are fulfilled, or rejects if any of the promises reject. The fulfilled value is an `Array` of the fulfilled values returned from `mapper` in `input` order.
|
|
32
|
+
*/
|
|
33
|
+
constructor(mapper, options = {}) {
|
|
34
|
+
this._sourceIterable = new iterable_queue_1.IterableQueue({
|
|
35
|
+
maxUnread: 0,
|
|
36
|
+
});
|
|
37
|
+
this._iterableMapper = new iterable_mapper_1.IterableMapper(this._sourceIterable, mapper, options);
|
|
38
|
+
}
|
|
39
|
+
[Symbol.asyncIterator]() {
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Used by the iterator returned from [Symbol.asyncIterator]
|
|
44
|
+
* Called every time an item is needed
|
|
45
|
+
* @returns Iterator result
|
|
46
|
+
*/
|
|
47
|
+
next() {
|
|
48
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
return this._iterableMapper.next();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Add an item to the queue, wait if the queue is full.
|
|
54
|
+
*
|
|
55
|
+
* @param item Element to add
|
|
56
|
+
*/
|
|
57
|
+
enqueue(item) {
|
|
58
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
yield this._sourceIterable.enqueue(item);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Indicate that no more items will be enqueued.
|
|
64
|
+
*
|
|
65
|
+
* This releases all readers blocked on `enqueue`
|
|
66
|
+
*/
|
|
67
|
+
done() {
|
|
68
|
+
this._sourceIterable.done();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.IterableQueueMapper = IterableQueueMapper;
|
|
72
|
+
//# 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,MAAa,mBAAmB;IAK9B;;;;;;;;;;;;;;;;;;;;;OAqBG;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;AAhED,kDAgEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterable-queue-mapper.test.d.ts","sourceRoot":"","sources":["../src/iterable-queue-mapper.test.ts"],"names":[],"mappings":""}
|