@metriport/shared 0.32.2 → 0.32.4

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 (48) hide show
  1. package/dist/common/__tests__/string.test.js +63 -0
  2. package/dist/common/__tests__/string.test.js.map +1 -1
  3. package/dist/common/demographics.d.ts +1 -1
  4. package/dist/common/merge-settings.js.map +1 -1
  5. package/dist/common/string.d.ts +6 -0
  6. package/dist/common/string.d.ts.map +1 -1
  7. package/dist/common/string.js +22 -1
  8. package/dist/common/string.js.map +1 -1
  9. package/dist/domain/tcm-encounter.d.ts +2 -2
  10. package/dist/error/__tests__/shared.test.js +458 -0
  11. package/dist/error/__tests__/shared.test.js.map +1 -1
  12. package/dist/error/shared.d.ts +1 -0
  13. package/dist/error/shared.d.ts.map +1 -1
  14. package/dist/error/shared.js +44 -1
  15. package/dist/error/shared.js.map +1 -1
  16. package/dist/external/hl7v2/constants.d.ts +31 -9
  17. package/dist/external/hl7v2/constants.d.ts.map +1 -1
  18. package/dist/external/hl7v2/constants.js +33 -10
  19. package/dist/external/hl7v2/constants.js.map +1 -1
  20. package/dist/interface/external/ehr/salesforce/patient.d.ts +232 -88
  21. package/dist/interface/external/ehr/salesforce/patient.d.ts.map +1 -1
  22. package/dist/interface/external/ehr/salesforce/patient.js +43 -5
  23. package/dist/interface/external/ehr/salesforce/patient.js.map +1 -1
  24. package/dist/medical/fhir/specialty-codes.d.ts +79 -0
  25. package/dist/medical/fhir/specialty-codes.d.ts.map +1 -0
  26. package/dist/medical/fhir/specialty-codes.js +1722 -0
  27. package/dist/medical/fhir/specialty-codes.js.map +1 -0
  28. package/dist/util/__tests__/concurrency.test.d.ts +2 -0
  29. package/dist/util/__tests__/concurrency.test.d.ts.map +1 -0
  30. package/dist/util/__tests__/concurrency.test.js +162 -0
  31. package/dist/util/__tests__/concurrency.test.js.map +1 -0
  32. package/dist/util/__tests__/null-to-undefined.test.d.ts +2 -0
  33. package/dist/util/__tests__/null-to-undefined.test.d.ts.map +1 -0
  34. package/dist/util/__tests__/null-to-undefined.test.js +60 -0
  35. package/dist/util/__tests__/null-to-undefined.test.js.map +1 -0
  36. package/dist/util/concurrency.d.ts +72 -0
  37. package/dist/util/concurrency.d.ts.map +1 -0
  38. package/dist/util/concurrency.js +87 -0
  39. package/dist/util/concurrency.js.map +1 -0
  40. package/dist/util/index.d.ts +2 -0
  41. package/dist/util/index.d.ts.map +1 -1
  42. package/dist/util/index.js +2 -0
  43. package/dist/util/index.js.map +1 -1
  44. package/dist/util/null-to-undefined.d.ts +2 -0
  45. package/dist/util/null-to-undefined.d.ts.map +1 -0
  46. package/dist/util/null-to-undefined.js +31 -0
  47. package/dist/util/null-to-undefined.js.map +1 -0
  48. package/package.json +5 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specialty-codes.js","sourceRoot":"","sources":["../../../src/medical/fhir/specialty-codes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=concurrency.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrency.test.d.ts","sourceRoot":"","sources":["../../../src/util/__tests__/concurrency.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ /* eslint-disable @typescript-eslint/no-empty-function */
27
+ const faker_1 = require("@faker-js/faker");
28
+ const sleep_1 = require("../../common/sleep");
29
+ const sleepModule = __importStar(require("../../common/sleep"));
30
+ const concurrency_1 = require("../concurrency");
31
+ const anyNumber = expect.any(Number);
32
+ beforeEach(() => {
33
+ jest.restoreAllMocks();
34
+ });
35
+ afterAll(() => {
36
+ jest.restoreAllMocks();
37
+ });
38
+ describe("executeAsynchronously", () => {
39
+ it("fails if minJitter is lower than zero", async () => {
40
+ const list = ["a", "b", "c", "d", "e"];
41
+ const fn = jest.fn(async () => { });
42
+ await expect((0, concurrency_1.executeAsynchronously)(list, fn, {
43
+ numberOfParallelExecutions: 2,
44
+ minJitterMillis: faker_1.faker.number.int({ min: 1 }) * -1,
45
+ })).rejects.toThrow();
46
+ });
47
+ it("fails if maxJitter is lower than zero", async () => {
48
+ const list = ["a", "b", "c", "d", "e"];
49
+ const fn = jest.fn(async () => { });
50
+ await expect((0, concurrency_1.executeAsynchronously)(list, fn, {
51
+ numberOfParallelExecutions: 2,
52
+ maxJitterMillis: faker_1.faker.number.int({ min: 1 }) * -1,
53
+ })).rejects.toThrow();
54
+ });
55
+ it("fails if minJitter is higer than maxJitter", async () => {
56
+ const list = ["a", "b", "c", "d", "e"];
57
+ const fn = jest.fn(async () => { });
58
+ await expect((0, concurrency_1.executeAsynchronously)(list, fn, {
59
+ numberOfParallelExecutions: 2,
60
+ maxJitterMillis: faker_1.faker.number.int({ min: 0, max: 10 }),
61
+ minJitterMillis: faker_1.faker.number.int({ min: 11 }),
62
+ })).rejects.toThrow();
63
+ });
64
+ // TODO fix this test, likely need to build a "shift" function so we can mock it (or mock
65
+ // Array.prototype.shift)
66
+ // it("runs splits list and runs it asynchronously", async () => {
67
+ // const list = ["a", "b", "c", "d", "e"];
68
+ // const fn = jest.fn(async () => {
69
+ // await sleep(20);
70
+ // });
71
+ // await executeAsynchronously(list, fn, {
72
+ // numberOfParallelExecutions: 2,
73
+ // maxJitterMillis: 10,
74
+ // minJitterMillis: 10,
75
+ // });
76
+ // expect(fn).toHaveBeenNthCalledWith(1, "a", 0, 0, 2);
77
+ // expect(fn).toHaveBeenNthCalledWith(2, "d", 0, 1, 2);
78
+ // expect(fn).toHaveBeenNthCalledWith(3, "b", 1, 0, 2);
79
+ // expect(fn).toHaveBeenNthCalledWith(4, "e", 1, 1, 2);
80
+ // expect(fn).toHaveBeenNthCalledWith(5, "c", 2, 0, 2);
81
+ // });
82
+ it("defaults async runs to to number of items on list", async () => {
83
+ const list = new Array(21).fill(666);
84
+ const fn = jest.fn();
85
+ await (0, concurrency_1.executeAsynchronously)(list, fn);
86
+ expect(fn).toHaveBeenCalledTimes(list.length);
87
+ });
88
+ it("sends correct item ", async () => {
89
+ const list = [1, 2, 3];
90
+ const fn = jest.fn();
91
+ await (0, concurrency_1.executeAsynchronously)(list, fn);
92
+ expect(fn).toHaveBeenNthCalledWith(1, list[0], anyNumber, anyNumber, anyNumber);
93
+ expect(fn).toHaveBeenNthCalledWith(2, list[1], anyNumber, anyNumber, anyNumber);
94
+ expect(fn).toHaveBeenNthCalledWith(3, list[2], anyNumber, anyNumber, anyNumber);
95
+ });
96
+ it("sends correct index item ", async () => {
97
+ const list = [1, 2, 3];
98
+ const fn = jest.fn();
99
+ await (0, concurrency_1.executeAsynchronously)(list, fn);
100
+ expect(fn).toHaveBeenNthCalledWith(1, anyNumber, 0, anyNumber, anyNumber);
101
+ expect(fn).toHaveBeenNthCalledWith(2, anyNumber, 1, anyNumber, anyNumber);
102
+ expect(fn).toHaveBeenNthCalledWith(3, anyNumber, 2, anyNumber, anyNumber);
103
+ });
104
+ it("jitters before runs", async () => {
105
+ const sleep_mock = jest.spyOn(sleepModule, "sleep").mockImplementation(async () => { });
106
+ const randomNumbers = [0.1, 0.2];
107
+ let lastRandom = 0;
108
+ const random_mock = jest
109
+ .spyOn(Math, "random")
110
+ .mockImplementation(() => randomNumbers[lastRandom++] ?? 0);
111
+ const list = [1, 2, 3, 4];
112
+ const fn = jest.fn();
113
+ await (0, concurrency_1.executeAsynchronously)(list, fn, {
114
+ numberOfParallelExecutions: 2,
115
+ maxJitterMillis: 1000,
116
+ });
117
+ expect(random_mock).toHaveBeenCalledTimes(2);
118
+ expect(sleep_mock).toHaveBeenCalledTimes(2);
119
+ expect(sleep_mock).toHaveBeenNthCalledWith(1, 100);
120
+ expect(sleep_mock).toHaveBeenNthCalledWith(2, 200);
121
+ });
122
+ it("defaults jitter before run to zero", async () => {
123
+ const sleep_mock = jest.spyOn(sleepModule, "sleep").mockImplementation(async () => { });
124
+ const list = [1, 2, 3, 4];
125
+ const fn = jest.fn();
126
+ await (0, concurrency_1.executeAsynchronously)(list, fn, { numberOfParallelExecutions: 2 });
127
+ expect(sleep_mock).toHaveBeenCalledTimes(2);
128
+ expect(sleep_mock).toHaveBeenNthCalledWith(1, 0);
129
+ expect(sleep_mock).toHaveBeenNthCalledWith(2, 0);
130
+ });
131
+ });
132
+ describe("threadsafe set operations", () => {
133
+ it("should add numbers to a set in a thread-safe manner", async () => {
134
+ const set = new Set();
135
+ const list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
136
+ const shuffleArray = (array) => {
137
+ for (let i = array.length - 1; i > 0; i--) {
138
+ const j = Math.floor(Math.random() * (i + 1));
139
+ //eslint-disable-next-line
140
+ [array[i], array[j]] = [array[j], array[i]];
141
+ }
142
+ return array;
143
+ };
144
+ const combinedList = [list, ...Array.from({ length: 9 }, () => shuffleArray([...list]))];
145
+ const addToSet = async (nums) => {
146
+ for (const num of nums) {
147
+ await (0, sleep_1.sleep)(10);
148
+ if (!set.has(num)) {
149
+ set.add(num);
150
+ }
151
+ }
152
+ };
153
+ await (0, concurrency_1.executeAsynchronously)(combinedList, addToSet, {
154
+ numberOfParallelExecutions: 20,
155
+ });
156
+ expect(set.size).toBe(20);
157
+ for (let i = 1; i <= 20; i++) {
158
+ expect(set.has(i)).toBe(true);
159
+ }
160
+ });
161
+ });
162
+ //# sourceMappingURL=concurrency.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrency.test.js","sourceRoot":"","sources":["../../../src/util/__tests__/concurrency.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=null-to-undefined.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-to-undefined.test.d.ts","sourceRoot":"","sources":["../../../src/util/__tests__/null-to-undefined.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const null_to_undefined_1 = require("../null-to-undefined");
4
+ const metriport_error_1 = require("../../error/metriport-error");
5
+ describe("nullToUndefined", () => {
6
+ it("converts top-level null to undefined", () => {
7
+ expect((0, null_to_undefined_1.nullToUndefined)(null)).toBeUndefined();
8
+ });
9
+ it("leaves primitives unchanged", () => {
10
+ expect((0, null_to_undefined_1.nullToUndefined)("a")).toBe("a");
11
+ expect((0, null_to_undefined_1.nullToUndefined)(0)).toBe(0);
12
+ expect((0, null_to_undefined_1.nullToUndefined)(true)).toBe(true);
13
+ });
14
+ it("converts null values inside a plain object to undefined", () => {
15
+ const input = { a: "x", b: null, c: 1 };
16
+ expect((0, null_to_undefined_1.nullToUndefined)(input)).toEqual({ a: "x", b: undefined, c: 1 });
17
+ });
18
+ it("converts null elements inside an array to undefined", () => {
19
+ const input = ["x", null, 1];
20
+ expect((0, null_to_undefined_1.nullToUndefined)(input)).toEqual(["x", undefined, 1]);
21
+ });
22
+ it("recurses into nested objects and arrays", () => {
23
+ const input = { rows: [{ code: "x", display: null }] };
24
+ expect((0, null_to_undefined_1.nullToUndefined)(input)).toEqual({
25
+ rows: [{ code: "x", display: undefined }],
26
+ });
27
+ });
28
+ it("handles array of row-like objects (select result shape)", () => {
29
+ const rows = [
30
+ { code: "10004002", display: "First", property_code: null, property_value: "1" },
31
+ { code: "1002007", display: null, property_code: "parent", property_value: null },
32
+ ];
33
+ expect((0, null_to_undefined_1.nullToUndefined)(rows)).toEqual([
34
+ { code: "10004002", display: "First", property_code: undefined, property_value: "1" },
35
+ { code: "1002007", display: undefined, property_code: "parent", property_value: undefined },
36
+ ]);
37
+ });
38
+ it("handles single row (selectOne result shape)", () => {
39
+ const row = { id: 1, system: "http://snomed.info/sct", name: null };
40
+ expect((0, null_to_undefined_1.nullToUndefined)(row)).toEqual({
41
+ id: 1,
42
+ system: "http://snomed.info/sct",
43
+ name: undefined,
44
+ });
45
+ });
46
+ it("returns non-plain objects (Date, RegExp, Buffer) unchanged", () => {
47
+ const d = new Date("2025-01-01");
48
+ expect((0, null_to_undefined_1.nullToUndefined)(d)).toBe(d);
49
+ const r = /foo/;
50
+ expect((0, null_to_undefined_1.nullToUndefined)(r)).toBe(r);
51
+ });
52
+ it("throws MetriportError when exceeding maxDepth", () => {
53
+ let nested = null;
54
+ for (let i = 0; i < 10; i++)
55
+ nested = { inner: nested };
56
+ expect(() => (0, null_to_undefined_1.nullToUndefined)(nested, 5)).toThrow(metriport_error_1.MetriportError);
57
+ expect(() => (0, null_to_undefined_1.nullToUndefined)(nested, 5)).toThrow("max recursion depth reached in nullToUndefined");
58
+ });
59
+ });
60
+ //# sourceMappingURL=null-to-undefined.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-to-undefined.test.js","sourceRoot":"","sources":["../../../src/util/__tests__/null-to-undefined.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ export type ExecuteInChunksOptions = {
2
+ /**
3
+ * How many promises should execute at the same time. Defaults to `collection.length` (all promises to run at the same time).
4
+ */
5
+ numberOfParallelExecutions?: number;
6
+ /**
7
+ * Explict delay between runs. Defaults to 0, no delay.
8
+ */
9
+ delay?: number;
10
+ /**
11
+ * Maximum jitter in milliseconds before each run. Makes promises
12
+ * start at slight different times. Defaults to 0, no jitter.
13
+ */
14
+ maxJitterMillis?: number;
15
+ /**
16
+ * Minimum jitter in milliseconds before each run. Makes promises
17
+ * start at slight different times. Defaults to 0.
18
+ */
19
+ minJitterMillis?: number;
20
+ /**
21
+ * Whether to keep executing when an error occurs. Defaults to false, which
22
+ * means some might finish execution when the error happens - non-deterministic.
23
+ */
24
+ keepExecutingOnError?: boolean;
25
+ /**
26
+ * Where to log. Defaults to no logging.
27
+ */
28
+ log?: typeof console.log;
29
+ };
30
+ /**
31
+ * Function type that should be passed to `executeAsynchronously`.
32
+ * It receives the item to be processed, the index of the item in the array,
33
+ * the index of the promise that is processing the item, and the total amount
34
+ * of promises that are running in parallel.
35
+ * It should return a promise that resolves when the processing is done.
36
+ * It should handle errors internally.
37
+ * @param item the item to be processed
38
+ * @param itemIndex the index of the item in the array
39
+ * @param promiseIndex the index of the promise ("thread") that is processing the item
40
+ * @param promiseCount the total amount of promises that are running in parallel
41
+ */
42
+ export type FunctionType<T> = (item: T, itemIndex: number, promiseIndex: number, promiseCount: number) => Promise<void>;
43
+ /**
44
+ * TODO #ENG-170 Set default `numberOfParallelExecutions` to 5-10 max.
45
+ *
46
+ * Process an array or items asynchronously. It doesn't throw if one of the promises fails
47
+ * (error handling should be done within the promise/function).
48
+ *
49
+ * For example, with an array of 19 elements and 4 parallel executions,
50
+ * we would have something like this being executed, where:
51
+ * - each row is a promise, like a thread running in parallel to the other promises;
52
+ * - each column is a function call with the respective item of the array, it runs in sequence
53
+ * to other calls on the same row;
54
+ *
55
+ * promise
56
+ * idx| items being executed
57
+ * -|---------------------------------------> time
58
+ * 1| item1 | item2 | item3 | item4 | item5 |
59
+ * -|---------------------------------------|
60
+ * 2| item1 | item2 | item3 | item4 | item5 |
61
+ * -|---------------------------------------|
62
+ * 3| item1 | item2 | item3 | item4 | item5 |
63
+ * -|---------------------------------------|
64
+ * 4| item1 | item2 | item3 | item4 |
65
+ * -|---------------------------------------> time
66
+ *
67
+ * @param collection array of elements to be processed
68
+ * @param fn the function to be executed asynchronously
69
+ * @param options additional settings
70
+ */
71
+ export declare function executeAsynchronously<T>(collection: T[], fn: FunctionType<T>, { numberOfParallelExecutions, delay, maxJitterMillis, minJitterMillis, keepExecutingOnError, log, }?: ExecuteInChunksOptions): Promise<PromiseSettledResult<void>[]>;
72
+ //# sourceMappingURL=concurrency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../../src/util/concurrency.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAC5B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;AAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,UAAU,EAAE,CAAC,EAAE,EACf,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EACnB,EACE,0BAA8C,EAC9C,KAAS,EACT,eAAmB,EACnB,eAAmB,EACnB,oBAA4B,EAC5B,GAAG,GACJ,GAAE,sBAA2B,GAC7B,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAoCvC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeAsynchronously = void 0;
4
+ const shared_1 = require("../error/shared");
5
+ const sleep_1 = require("../common/sleep");
6
+ const emptyString = "";
7
+ /**
8
+ * TODO #ENG-170 Set default `numberOfParallelExecutions` to 5-10 max.
9
+ *
10
+ * Process an array or items asynchronously. It doesn't throw if one of the promises fails
11
+ * (error handling should be done within the promise/function).
12
+ *
13
+ * For example, with an array of 19 elements and 4 parallel executions,
14
+ * we would have something like this being executed, where:
15
+ * - each row is a promise, like a thread running in parallel to the other promises;
16
+ * - each column is a function call with the respective item of the array, it runs in sequence
17
+ * to other calls on the same row;
18
+ *
19
+ * promise
20
+ * idx| items being executed
21
+ * -|---------------------------------------> time
22
+ * 1| item1 | item2 | item3 | item4 | item5 |
23
+ * -|---------------------------------------|
24
+ * 2| item1 | item2 | item3 | item4 | item5 |
25
+ * -|---------------------------------------|
26
+ * 3| item1 | item2 | item3 | item4 | item5 |
27
+ * -|---------------------------------------|
28
+ * 4| item1 | item2 | item3 | item4 |
29
+ * -|---------------------------------------> time
30
+ *
31
+ * @param collection array of elements to be processed
32
+ * @param fn the function to be executed asynchronously
33
+ * @param options additional settings
34
+ */
35
+ async function executeAsynchronously(collection, fn, { numberOfParallelExecutions = collection.length, delay = 0, maxJitterMillis = 0, minJitterMillis = 0, keepExecutingOnError = false, log, } = {}) {
36
+ if (delay < 0)
37
+ throw new Error("delay must be >= 0");
38
+ if (minJitterMillis < 0)
39
+ throw new Error("minJitterMillis must be >= 0");
40
+ if (maxJitterMillis < 0)
41
+ throw new Error("maxJitterMillis must be >= 0");
42
+ if (minJitterMillis > maxJitterMillis) {
43
+ throw new Error("minJitterMillis must be <= maxJitterMillis");
44
+ }
45
+ // Copy the array so that we don't mutate the original (this only copies the references)
46
+ const itemsToProcess = collection.slice();
47
+ const amountOfPromises = Math.max(Math.min(itemsToProcess.length, numberOfParallelExecutions), 1);
48
+ const indexControl = { currentIndex: 0 };
49
+ const promises = new Array(amountOfPromises).fill(0).map(async (_, promiseIndex) => {
50
+ // possible jitter before each run so that they don't start at the same time
51
+ const jitter = Math.max(minJitterMillis, Math.random() * maxJitterMillis);
52
+ await (0, sleep_1.sleep)(jitter);
53
+ if (delay > 0)
54
+ await (0, sleep_1.sleep)(delay);
55
+ await executeSynchronously(itemsToProcess, fn, promiseIndex, amountOfPromises, indexControl, keepExecutingOnError, log);
56
+ });
57
+ if (keepExecutingOnError) {
58
+ return await Promise.allSettled(promises);
59
+ }
60
+ return (await Promise.all(promises)).map(p => ({ status: "fulfilled", value: p }));
61
+ }
62
+ exports.executeAsynchronously = executeAsynchronously;
63
+ /**
64
+ * Document properly before exposing this
65
+ */
66
+ async function executeSynchronously(itemsToProcess, fn, promiseIndex, amountOfPromises, indexControl, keepExecutingOnError, log) {
67
+ const tabs = log ? "\t".repeat(promiseIndex) : emptyString;
68
+ let item;
69
+ while ((item = itemsToProcess.shift())) {
70
+ log &&
71
+ log(`... ${tabs}... promise ${promiseIndex} item ${indexControl.currentIndex} remaining ${itemsToProcess.length}...`);
72
+ try {
73
+ await fn(item, indexControl.currentIndex, promiseIndex, amountOfPromises);
74
+ indexControl.currentIndex = indexControl.currentIndex + 1;
75
+ }
76
+ catch (error) {
77
+ if (keepExecutingOnError) {
78
+ log &&
79
+ log(`Error on item ${indexControl.currentIndex} of promise ${promiseIndex}: ${(0, shared_1.errorToString)(error)}`);
80
+ }
81
+ else {
82
+ throw error;
83
+ }
84
+ }
85
+ }
86
+ }
87
+ //# sourceMappingURL=concurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrency.js","sourceRoot":"","sources":["../../src/util/concurrency.ts"],"names":[],"mappings":";;;AAAA,4CAAgD;AAChD,2CAAwC;AAmDxC,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,qBAAqB,CACzC,UAAe,EACf,EAAmB,EACnB,EACE,0BAA0B,GAAG,UAAU,CAAC,MAAM,EAC9C,KAAK,GAAG,CAAC,EACT,eAAe,GAAG,CAAC,EACnB,eAAe,GAAG,CAAC,EACnB,oBAAoB,GAAG,KAAK,EAC5B,GAAG,MACuB,EAAE;IAE9B,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACrD,IAAI,eAAe,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACzE,IAAI,eAAe,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACzE,IAAI,eAAe,GAAG,eAAe,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,wFAAwF;IACxF,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAE1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC;IAElG,MAAM,YAAY,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE;QACjF,4EAA4E;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC;QAC1E,MAAM,IAAA,aAAK,EAAC,MAAM,CAAC,CAAC;QACpB,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAA,aAAK,EAAC,KAAK,CAAC,CAAC;QAElC,MAAM,oBAAoB,CACxB,cAAc,EACd,EAAE,EACF,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,oBAAoB,EAAE;QACxB,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC3C;IACD,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC;AA/CD,sDA+CC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,cAAmB,EACnB,EAAmB,EACnB,YAAoB,EACpB,gBAAwB,EACxB,YAAsC,EACtC,oBAA6B,EAC7B,GAAoC;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3D,IAAI,IAAI,CAAC;IACT,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE;QACtC,GAAG;YACD,GAAG,CACD,OAAO,IAAI,eAAe,YAAY,SAAS,YAAY,CAAC,YAAY,cAAc,cAAc,CAAC,MAAM,KAAK,CACjH,CAAC;QACJ,IAAI;YACF,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC1E,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC;SAC3D;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,oBAAoB,EAAE;gBACxB,GAAG;oBACD,GAAG,CACD,iBAAiB,YAAY,CAAC,YAAY,eAAe,YAAY,KAAK,IAAA,sBAAa,EACrF,KAAK,CACN,EAAE,CACJ,CAAC;aACL;iBAAM;gBACL,MAAM,KAAK,CAAC;aACb;SACF;KACF;AACH,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from "./base64";
2
+ export * from "./concurrency";
2
3
  export * from "./duration";
4
+ export * from "./null-to-undefined";
3
5
  export * from "./sqs-delay-from-uuid";
4
6
  export * from "./uuid-v7";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC"}
@@ -15,7 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./base64"), exports);
18
+ __exportStar(require("./concurrency"), exports);
18
19
  __exportStar(require("./duration"), exports);
20
+ __exportStar(require("./null-to-undefined"), exports);
19
21
  __exportStar(require("./sqs-delay-from-uuid"), exports);
20
22
  __exportStar(require("./uuid-v7"), exports);
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,6CAA2B;AAC3B,wDAAsC;AACtC,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,gDAA8B;AAC9B,6CAA2B;AAC3B,sDAAoC;AACpC,wDAAsC;AACtC,4CAA0B"}
@@ -0,0 +1,2 @@
1
+ export declare function nullToUndefined<T>(value: T, maxDepth?: number): T;
2
+ //# sourceMappingURL=null-to-undefined.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-to-undefined.d.ts","sourceRoot":"","sources":["../../src/util/null-to-undefined.ts"],"names":[],"mappings":"AAwBA,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,SAAkB,GAAG,CAAC,CAE1E"}