@dereekb/util 9.25.14 → 9.25.16

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/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.25.16](https://github.com/dereekb/dbx-components/compare/v9.25.15-dev...v9.25.16) (2023-12-01)
6
+
7
+
8
+
9
+ ## [9.25.15](https://github.com/dereekb/dbx-components/compare/v9.25.14-dev...v9.25.15) (2023-11-27)
10
+
11
+
12
+
5
13
  ## [9.25.14](https://github.com/dereekb/dbx-components/compare/v9.25.13-dev...v9.25.14) (2023-11-23)
6
14
 
7
15
 
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.25.16](https://github.com/dereekb/dbx-components/compare/v9.25.15-dev...v9.25.16) (2023-12-01)
6
+
7
+
8
+
9
+ ## [9.25.15](https://github.com/dereekb/dbx-components/compare/v9.25.14-dev...v9.25.15) (2023-11-27)
10
+
11
+
12
+
5
13
  ## [9.25.14](https://github.com/dereekb/dbx-components/compare/v9.25.13-dev...v9.25.14) (2023-11-23)
6
14
 
7
15
 
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@dereekb/util/fetch",
3
- "version": "9.25.14",
3
+ "version": "9.25.16",
4
4
  "main": "./src/index.js",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {},
7
7
  "peerDependencies": {
8
- "@dereekb/util": "9.25.14",
8
+ "@dereekb/util": "9.25.16",
9
9
  "lodash.isequal": "^4.5.0",
10
10
  "make-error": "^1.3.0",
11
11
  "class-validator": "^0.13.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/util",
3
- "version": "9.25.14",
3
+ "version": "9.25.16",
4
4
  "type": "commonjs",
5
5
  "exports": {
6
6
  ".": {
@@ -140,6 +140,7 @@ export declare const HOURS_IN_DAY = 24;
140
140
  export declare const SECONDS_IN_MINUTE = 60;
141
141
  export declare const MINUTES_IN_DAY = 1440;
142
142
  export declare const MINUTES_IN_HOUR = 60;
143
+ export declare const MS_IN_SECOND = 1000;
143
144
  export declare const MS_IN_MINUTE: number;
144
145
  export declare const MS_IN_HOUR: number;
145
146
  export declare const MS_IN_DAY: number;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isDate = exports.makeDateMonthForMonthOfYear = exports.monthOfYearFromDateMonth = exports.monthOfYearFromDate = exports.MS_IN_DAY = exports.MS_IN_HOUR = exports.MS_IN_MINUTE = exports.MINUTES_IN_HOUR = exports.MINUTES_IN_DAY = exports.SECONDS_IN_MINUTE = exports.HOURS_IN_DAY = exports.monthDaySlashDateToDateString = exports.isMonthDaySlashDate = exports.MONTH_DAY_SLASH_DATE_STRING_REGEX = exports.isISO8601DayStringStart = exports.isISO8601DayString = exports.ISO8601_DAY_STRING_START_REGEX = exports.ISO8601_DAY_STRING_REGEX = exports.isConsideredUtcTimezoneString = exports.UTC_TIMEZONE_STRING = exports.hasSameTimezone = exports.isUTCDateString = exports.UTC_DATE_STRING_REGEX = exports.isISO8601DateString = exports.ISO_8601_DATE_STRING_REGEX = void 0;
3
+ exports.isDate = exports.makeDateMonthForMonthOfYear = exports.monthOfYearFromDateMonth = exports.monthOfYearFromDate = exports.MS_IN_DAY = exports.MS_IN_HOUR = exports.MS_IN_MINUTE = exports.MS_IN_SECOND = exports.MINUTES_IN_HOUR = exports.MINUTES_IN_DAY = exports.SECONDS_IN_MINUTE = exports.HOURS_IN_DAY = exports.monthDaySlashDateToDateString = exports.isMonthDaySlashDate = exports.MONTH_DAY_SLASH_DATE_STRING_REGEX = exports.isISO8601DayStringStart = exports.isISO8601DayString = exports.ISO8601_DAY_STRING_START_REGEX = exports.ISO8601_DAY_STRING_REGEX = exports.isConsideredUtcTimezoneString = exports.UTC_TIMEZONE_STRING = exports.hasSameTimezone = exports.isUTCDateString = exports.UTC_DATE_STRING_REGEX = exports.isISO8601DateString = exports.ISO_8601_DATE_STRING_REGEX = void 0;
4
4
  const maybe_1 = require("../value/maybe");
5
5
  /**
6
6
  * TODO: Need to improve to support negative years.
@@ -97,7 +97,8 @@ exports.HOURS_IN_DAY = 24;
97
97
  exports.SECONDS_IN_MINUTE = 60;
98
98
  exports.MINUTES_IN_DAY = 1440;
99
99
  exports.MINUTES_IN_HOUR = 60;
100
- exports.MS_IN_MINUTE = 1000 * 60;
100
+ exports.MS_IN_SECOND = 1000;
101
+ exports.MS_IN_MINUTE = exports.MS_IN_SECOND * 60;
101
102
  exports.MS_IN_HOUR = exports.MS_IN_MINUTE * 60;
102
103
  exports.MS_IN_DAY = exports.MS_IN_HOUR * exports.HOURS_IN_DAY;
103
104
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/date/date.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/date/date.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { CopyObjectFunction } from '../object/object';
2
- import { PromiseOrValue } from '../promise/promise';
2
+ import { PromiseOrValue } from '../promise/promise.type';
3
3
  import { ClassType } from '../type';
4
4
  import { MapFunction } from '../value/map';
5
5
  import { Maybe } from '../value/maybe.type';
@@ -98,3 +98,10 @@ export declare type FactoryWithIndex<T> = FactoryWithInput<T, number> | FactoryW
98
98
  export declare function makeWithFactory<T>(factory: Factory<T> | FactoryWithIndex<T>, count: number): T[];
99
99
  export declare function makeWithFactoryInput<T, A>(factory: FactoryWithInput<T, A>, input: Maybe<A>[]): T[];
100
100
  export declare function makeWithFactoryInput<T, A>(factory: FactoryWithRequiredInput<T, A>, input: A[]): T[];
101
+ /**
102
+ * Wraps the factory so that when executed no arguments are passed to the factory.
103
+ *
104
+ * @param factory
105
+ * @returns
106
+ */
107
+ export declare function protectedFactory<T>(factory: Factory<T>): Factory<T>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeWithFactoryInput = exports.makeWithFactory = exports.makeGetter = exports.asObjectCopyFactory = exports.objectCopyFactory = exports.asGetter = exports.getValueFromGetter = exports.isGetter = void 0;
3
+ exports.protectedFactory = exports.makeWithFactoryInput = exports.makeWithFactory = exports.makeGetter = exports.asObjectCopyFactory = exports.objectCopyFactory = exports.asGetter = exports.getValueFromGetter = exports.isGetter = void 0;
4
4
  const object_1 = require("../object/object");
5
5
  const type_1 = require("../type");
6
6
  /**
@@ -86,4 +86,14 @@ function makeWithFactoryInput(factory, input) {
86
86
  return input.map((x) => factory(x));
87
87
  }
88
88
  exports.makeWithFactoryInput = makeWithFactoryInput;
89
+ /**
90
+ * Wraps the factory so that when executed no arguments are passed to the factory.
91
+ *
92
+ * @param factory
93
+ * @returns
94
+ */
95
+ function protectedFactory(factory) {
96
+ return () => factory();
97
+ }
98
+ exports.protectedFactory = protectedFactory;
89
99
  //# sourceMappingURL=getter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getter.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/getter.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAElE,kCAAwD;AAmDxD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAc,KAAc;IAClD,OAAO,IAAA,yBAAkB,EAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAFD,4BAEC;AAaD,SAAgB,kBAAkB,CAAsB,KAAc,EAAE,IAAQ;IAC9E,IAAI,IAAA,yBAAkB,EAAC,KAAK,CAAC,EAAE;QAC7B,OAAQ,KAAkB,CAAC,IAAI,CAAC,CAAC;KAClC;SAAM;QACL,OAAO,KAAU,CAAC;KACnB;AACH,CAAC;AAND,gDAMC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAI,KAAuB;IACjD,IAAI,IAAA,yBAAkB,EAAC,KAAK,CAAC,EAAE;QAC7B,OAAO,KAAkB,CAAC;KAC3B;SAAM;QACL,OAAO,GAAG,EAAE,CAAC,KAAU,CAAC;KACzB;AACH,CAAC;AAND,4BAMC;AAOD;;;;GAIG;AACH,SAAgB,iBAAiB,CAAmB,KAAQ,EAAE,eAAsC,mBAAU;IAC5G,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAFD,8CAEC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAI,KAA+B,EAAE,YAAoC;IAC1G,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,8DAA8D;QAC9D,OAAO,iBAAiB,CAAM,KAAK,EAAE,YAAY,CAAC,CAAC;KACpD;SAAM;QACL,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;AACH,CAAC;AAPD,kDAOC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAI,KAAQ;IACpC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;AACrB,CAAC;AAFD,gCAEC;AAOD,SAAgB,eAAe,CAAI,OAAyC,EAAE,KAAa;IACzF,MAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AARD,0CAQC;AAID,SAAgB,oBAAoB,CAAO,OAAuC,EAAE,KAAU;IAC5F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAFD,oDAEC"}
1
+ {"version":3,"file":"getter.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/getter.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAElE,kCAAwD;AAmDxD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAc,KAAc;IAClD,OAAO,IAAA,yBAAkB,EAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAFD,4BAEC;AAaD,SAAgB,kBAAkB,CAAsB,KAAc,EAAE,IAAQ;IAC9E,IAAI,IAAA,yBAAkB,EAAC,KAAK,CAAC,EAAE;QAC7B,OAAQ,KAAkB,CAAC,IAAI,CAAC,CAAC;KAClC;SAAM;QACL,OAAO,KAAU,CAAC;KACnB;AACH,CAAC;AAND,gDAMC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAI,KAAuB;IACjD,IAAI,IAAA,yBAAkB,EAAC,KAAK,CAAC,EAAE;QAC7B,OAAO,KAAkB,CAAC;KAC3B;SAAM;QACL,OAAO,GAAG,EAAE,CAAC,KAAU,CAAC;KACzB;AACH,CAAC;AAND,4BAMC;AAOD;;;;GAIG;AACH,SAAgB,iBAAiB,CAAmB,KAAQ,EAAE,eAAsC,mBAAU;IAC5G,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAFD,8CAEC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAI,KAA+B,EAAE,YAAoC;IAC1G,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,8DAA8D;QAC9D,OAAO,iBAAiB,CAAM,KAAK,EAAE,YAAY,CAAC,CAAC;KACpD;SAAM;QACL,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;AACH,CAAC;AAPD,kDAOC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAI,KAAQ;IACpC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;AACrB,CAAC;AAFD,gCAEC;AAOD,SAAgB,eAAe,CAAI,OAAyC,EAAE,KAAa;IACzF,MAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AARD,0CAQC;AAID,SAAgB,oBAAoB,CAAO,OAAuC,EAAE,KAAU;IAC5F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAFD,oDAEC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAI,OAAmB;IACrD,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AACzB,CAAC;AAFD,4CAEC"}
@@ -1,4 +1,5 @@
1
1
  import { PrimativeKey, ReadKeyFunction } from './key';
2
+ import { IndexRef } from './value/indexed';
2
3
  import { EqualityComparatorFunction } from './value/comparator';
3
4
  import { DecisionFunction } from './value/decision';
4
5
  import { Maybe } from './value/maybe.type';
@@ -36,6 +37,7 @@ export interface RestoreOrderParams<T, K extends number | string = number | stri
36
37
  */
37
38
  excludeNewItems?: boolean;
38
39
  }
40
+ export declare type IndexedBatch<T> = T[] & Readonly<IndexRef>;
39
41
  /**
40
42
  * Batches items from the input array into several batches of a maximum size.
41
43
  *
@@ -43,7 +45,7 @@ export interface RestoreOrderParams<T, K extends number | string = number | stri
43
45
  * @param batchSize
44
46
  * @returns
45
47
  */
46
- export declare function batch<T>(array: T[], batchSize: number): T[][];
48
+ export declare function batch<T>(input: T[], batchSize: number): IndexedBatch<T>[];
47
49
  export interface BatchCount {
48
50
  /**
49
51
  * Total number of items to make.
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeValuesGroupMap = exports.groupValues = exports.separateValues = exports.makeKeyPairs = exports.pairGroupValues = exports.arrayContentsDiffer = exports.restoreOrder = exports.restoreOrderWithValues = exports.itemCountForBatchIndex = exports.batchCalc = exports.batch = void 0;
4
4
  const object_1 = require("./object");
5
- // MARK: Functions
6
5
  /**
7
6
  * Batches items from the input array into several batches of a maximum size.
8
7
  *
@@ -10,13 +9,17 @@ const object_1 = require("./object");
10
9
  * @param batchSize
11
10
  * @returns
12
11
  */
13
- function batch(array, batchSize) {
14
- array = [].concat(array); // Copy array before splicing it.
15
- const batch = [];
12
+ function batch(input, batchSize) {
13
+ const array = [...input]; // Copy array before splicing it.
14
+ const batches = [];
15
+ let i = 0;
16
16
  while (array.length > 0) {
17
- batch.push(array.splice(0, batchSize));
17
+ const batch = array.splice(0, batchSize);
18
+ batch.i = i;
19
+ batches.push(batch);
20
+ i += 1;
18
21
  }
19
- return batch;
22
+ return batches;
20
23
  }
21
24
  exports.batch = batch;
22
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/grouping.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AA8CvC,kBAAkB;AAClB;;;;;;GAMG;AACH,SAAgB,KAAK,CAAI,KAAU,EAAE,SAAiB;IACpD,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,KAAW,CAAC,CAAC,CAAC,iCAAiC;IACjE,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;KACxC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AATD,sBASC;AAyBD;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAiB;IACzC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;IACpC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAE/D,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU;QACV,cAAc;QACd,SAAS;KACV,CAAC;AACJ,CAAC;AAbD,8BAaC;AAED,SAAgB,sBAAsB,CAAC,KAAa,EAAE,IAAe;IACnE,IAAI,SAAiB,CAAC;IAEtB,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;QAC/B,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;KAChC;SAAM;QACL,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;KAC5B;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAVD,wDAUC;AAED;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAA2C,WAAgB,EAAE,MAAW,EAAE,MAAgC;IAC9I,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,YAAY,CAAC,SAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAJD,wDAIC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAA2C,SAAc,EAAE,MAAW,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,GAAG,KAAK,EAA4B;IAClN,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAmB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,MAAM,aAAa,GAAQ,IAAI,KAAK,EAAK,CAAC;IAC1C,MAAM,QAAQ,GAAQ,EAAE,CAAC;IAEzB,SAAS,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,GAAa,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpC,SAAS,QAAQ;YACf,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,aAAa,CAAC,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC;SACnC;aAAM,IAAI,CAAC,eAAe,EAAE;YAC3B,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3B;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B;IAC1G,OAAO,MAAM,CAAC;AAChB,CAAC;AAvBD,oCAuBC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAA2C,IAAS,EAAE,EAAE,IAAS,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAsC;IACjK,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;QACzB,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAExD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,kDAAkD;YAClD,YAAY,GAAG,IAAI,CAAC;SACrB;aAAM;YACL,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;gBAClC,sCAAsC;gBACtC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;oBACpB,YAAY,GAAG,IAAI,CAAC;oBACpB,MAAM;iBACP;aACF;SACF;KACF;SAAM;QACL,YAAY,GAAG,IAAI,CAAC,CAAC,wCAAwC;KAC9D;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAvBD,kDAuBC;AAED,SAAgB,eAAe,CAA2C,MAAW,EAAE,UAAiC;IACtH,MAAM,GAAG,GAAG,kBAAkB,CAAO,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAQ,EAAE,CAAC;IAEzB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;QACrB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACf;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC;AAjBD,0CAiBC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAiD,MAAW,EAAE,KAA4B;IACpH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,oCAEC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAI,MAAW,EAAE,cAAmC;IAChF,MAAM,MAAM,GAA0D,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QAC9F,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;KAC3B,CAAC;AACJ,CAAC;AATD,wCASC;AAUD,SAAgB,WAAW,CAA2C,MAAW,EAAE,UAAiC;IAClH,MAAM,GAAG,GAAG,kBAAkB,CAAO,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,OAAO,IAAA,oBAAW,EAAC,GAA4B,CAAC,CAAC;AACnD,CAAC;AAHD,kCAGC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAA2C,MAAW,EAAE,UAAiC;IACzH,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IAErC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACf;aAAM;YACL,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACnB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAfD,gDAeC"}
1
+ {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/grouping.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ import { Maybe } from '../value/maybe.type';
3
3
  * Whole dollar amounts, before the ','.
4
4
  */
5
5
  export declare type WholeDollarAmount = number;
6
+ /**
7
+ * Dollar amount number.
8
+ */
9
+ export declare type DollarAmount = number;
6
10
  export declare type CentsAmount = number;
7
11
  export interface DollarsPair {
8
12
  dollars: WholeDollarAmount;
@@ -15,6 +19,10 @@ export interface DollarsPair {
15
19
  */
16
20
  export declare type DollarAmountString = string;
17
21
  export declare const DOLLAR_AMOUNT_STRING_REGEX: RegExp;
22
+ /**
23
+ * Dollar amounts are to two decimal places.
24
+ */
25
+ export declare const DOLLAR_AMOUNT_PRECISION = 2;
18
26
  /**
19
27
  * Returns true if the input is a valid DollarAmountString value.
20
28
  *
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dollarAmountString = exports.isDollarAmountString = exports.DOLLAR_AMOUNT_STRING_REGEX = void 0;
3
+ exports.dollarAmountString = exports.isDollarAmountString = exports.DOLLAR_AMOUNT_PRECISION = exports.DOLLAR_AMOUNT_STRING_REGEX = void 0;
4
4
  const round_1 = require("./round");
5
5
  exports.DOLLAR_AMOUNT_STRING_REGEX = /^\$?([0-9]+)\.?([0-9][0-9])$/;
6
+ /**
7
+ * Dollar amounts are to two decimal places.
8
+ */
9
+ exports.DOLLAR_AMOUNT_PRECISION = 2;
6
10
  /**
7
11
  * Returns true if the input is a valid DollarAmountString value.
8
12
  *
@@ -22,7 +26,7 @@ exports.isDollarAmountString = isDollarAmountString;
22
26
  */
23
27
  function dollarAmountString(number) {
24
28
  if (number) {
25
- return (0, round_1.cutToPrecision)(number, 2).toFixed(2);
29
+ return (0, round_1.cutToPrecision)(number, exports.DOLLAR_AMOUNT_PRECISION).toFixed(exports.DOLLAR_AMOUNT_PRECISION);
26
30
  }
27
31
  else {
28
32
  return '0.00';
@@ -1 +1 @@
1
- {"version":3,"file":"dollar.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/dollar.ts"],"names":[],"mappings":";;;AACA,mCAAyC;AAoB5B,QAAA,0BAA0B,GAAG,8BAA8B,CAAC;AAEzE;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAO,kCAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,oDAEC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,MAAqB;IACtD,IAAI,MAAM,EAAE;QACV,OAAO,IAAA,sBAAc,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAC7C;SAAM;QACL,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AAND,gDAMC"}
1
+ {"version":3,"file":"dollar.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/dollar.ts"],"names":[],"mappings":";;;AACA,mCAAyC;AAwB5B,QAAA,0BAA0B,GAAG,8BAA8B,CAAC;AAEzE;;GAEG;AACU,QAAA,uBAAuB,GAAG,CAAC,CAAC;AAEzC;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAO,kCAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,oDAEC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,MAAqB;IACtD,IAAI,MAAM,EAAE;QACV,OAAO,IAAA,sBAAc,EAAC,MAAM,EAAE,+BAAuB,CAAC,CAAC,OAAO,CAAC,+BAAuB,CAAC,CAAC;KACzF;SAAM;QACL,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AAND,gDAMC"}
@@ -5,5 +5,6 @@ export * from './map';
5
5
  export * from './promise';
6
6
  export * from './promise.loop';
7
7
  export * from './promise.ref';
8
+ export * from './promise.type';
8
9
  export * from './wait';
9
10
  export * from './use';
@@ -8,6 +8,7 @@ tslib_1.__exportStar(require("./map"), exports);
8
8
  tslib_1.__exportStar(require("./promise"), exports);
9
9
  tslib_1.__exportStar(require("./promise.loop"), exports);
10
10
  tslib_1.__exportStar(require("./promise.ref"), exports);
11
+ tslib_1.__exportStar(require("./promise.type"), exports);
11
12
  tslib_1.__exportStar(require("./wait"), exports);
12
13
  tslib_1.__exportStar(require("./use"), exports);
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,+CAAqB;AACrB,iDAAuB;AACvB,gDAAsB;AACtB,oDAA0B;AAC1B,yDAA+B;AAC/B,wDAA8B;AAC9B,iDAAuB;AACvB,gDAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,+CAAqB;AACrB,iDAAuB;AACvB,gDAAsB;AACtB,oDAA0B;AAC1B,yDAA+B;AAC/B,wDAA8B;AAC9B,yDAA+B;AAC/B,iDAAuB;AACvB,gDAAsB"}
@@ -1,4 +1,4 @@
1
- import { PromiseOrValue } from './promise';
1
+ import { PromiseOrValue } from './promise.type';
2
2
  /**
3
3
  * Performs a mapping function on the input PromiseOrValue value.
4
4
  *
@@ -1,53 +1,127 @@
1
+ import { Milliseconds } from '../date/date';
2
+ import { IndexNumber } from '../value';
1
3
  import { Maybe } from '../value/maybe.type';
2
- export declare type PromiseOrValue<T> = Promise<T> | T;
3
- export declare function asPromise<T>(input: PromiseOrValue<T>): Promise<T>;
4
- export declare type PromiseTaskFn<T, K = unknown> = (value: T, tryNumber?: number) => Promise<K>;
5
- export interface PerformTaskResult<O> {
6
- value: Maybe<O>;
7
- success: boolean;
4
+ export declare type RunAsyncTaskForValueConfig<T = unknown> = Omit<PerformAsyncTaskConfig<T>, 'throwError'>;
5
+ export declare type RunAsyncTasksForValuesConfig<T = unknown> = Omit<PerformAsyncTasksConfig<T>, 'throwError'>;
6
+ /**
7
+ * Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
8
+ */
9
+ export declare function runAsyncTaskForValue<O>(taskFn: () => Promise<O>, config?: RunAsyncTaskForValueConfig<0>): Promise<Maybe<O>>;
10
+ /**
11
+ * Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
12
+ *
13
+ * @param input
14
+ * @param taskFn
15
+ * @param config
16
+ * @returns
17
+ */
18
+ export declare function runAsyncTasksForValues<T, K = unknown>(input: T[], taskFn: PromiseAsyncTaskFn<T, K>, config?: RunAsyncTasksForValuesConfig<T>): Promise<K[]>;
19
+ export declare type PromiseAsyncTaskFn<T, K = unknown> = (value: T, tryNumber?: number) => Promise<K>;
20
+ export interface PerformAsyncTaskResult<O> {
21
+ readonly value: Maybe<O>;
22
+ readonly success: boolean;
8
23
  }
9
- export interface PerformTasksResult<T, K> {
10
- succeded: T[];
11
- failed: T[];
12
- results: [T, K][];
24
+ export interface PerformAsyncTasksResult<I, O> {
25
+ readonly succeded: I[];
26
+ readonly failed: I[];
27
+ readonly results: [I, O][];
28
+ readonly errors: [I, unknown][];
13
29
  }
14
- export interface PerformTaskConfig<T = unknown> {
15
- throwError?: boolean;
16
- retriesAllowed?: number;
17
- retryWait?: number;
30
+ export interface PerformAsyncTaskConfig<I = unknown> {
18
31
  /**
19
- * Optional function to use before a retry.
32
+ * Whether or not to throw an error if the task fails. Defaults to true.
33
+ *
34
+ * If retries are allowed, this will throw the final error from the final try.
20
35
  */
21
- beforeRetry?: (value: T, tryNumber?: number) => void | Promise<void>;
22
- }
23
- export declare type ValueTaskConfig<T = unknown> = Omit<PerformTaskConfig<T>, 'throwError'>;
24
- export interface PerformTasksConfig<T = unknown> extends PerformTaskConfig<T> {
36
+ readonly throwError?: boolean;
25
37
  /**
26
- * Whether or not tasks are performed sequentially or if tasks are all done in "parellel".
38
+ * Whether or not retries are allowed. Defaults to false/0.
39
+ */
40
+ readonly retriesAllowed?: number | false;
41
+ /**
42
+ * The amount of time to wait between retries. Defaults to 100 ms.
43
+ */
44
+ readonly retryWait?: number;
45
+ /**
46
+ * Optional function to use before a retry.
27
47
  */
28
- sequential?: boolean;
48
+ readonly beforeRetry?: (value: I, tryNumber?: number) => void | Promise<void>;
29
49
  }
30
- export declare type ValuesTaskConfig<T = unknown> = Omit<PerformTasksConfig<T>, 'throwError'>;
31
- export declare class PromiseUtility {
50
+ export interface PerformAsyncTasksConfig<I = unknown> extends PerformAsyncTaskConfig<I>, Omit<PerformTasksInParallelFunctionConfig<I>, 'taskFactory'> {
51
+ }
52
+ /**
53
+ * Performs the input tasks, and will retry tasks if they fail, up to a certain point.
54
+ *
55
+ * This is useful for retrying sections that may experience optimistic concurrency collisions.
56
+ */
57
+ export declare function performAsyncTasks<I, O = unknown>(input: I[], taskFn: PromiseAsyncTaskFn<I, O>, config?: PerformAsyncTasksConfig<I>): Promise<PerformAsyncTasksResult<I, O>>;
58
+ export declare function performAsyncTask<O>(taskFn: () => Promise<O>, config?: PerformAsyncTaskConfig<0>): Promise<PerformAsyncTaskResult<O>>;
59
+ export interface PerformTasksInParallelFunctionConfig<I> {
32
60
  /**
33
- * Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
61
+ * Creates a promise from the input.
34
62
  */
35
- static runTaskForValue<O>(taskFn: () => Promise<O>, config?: ValueTaskConfig<0>): Promise<Maybe<O>>;
63
+ readonly taskFactory: (input: I, value: IndexNumber) => Promise<void>;
36
64
  /**
37
- * Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
65
+ * Whether or not tasks are performed sequentially or if tasks are all done in "parellel".
38
66
  *
39
- * @param input
40
- * @param taskFn
41
- * @param config
42
- * @returns
67
+ * Is ignored if maxParallelTasks is set.
43
68
  */
44
- static runTasksForValues<T, K = unknown>(input: T[], taskFn: PromiseTaskFn<T, K>, config?: PerformTasksConfig<T>): Promise<K[]>;
69
+ readonly sequential?: boolean;
45
70
  /**
46
- * Performs the input tasks, and will retry tasks if they fail, up to a certain point.
47
- *
48
- * This is useful for retrying sections that may experience optimistic concurrency collisions.
71
+ * The maximum number of items to process in parallel. If there is no max, then all items will be processed in parallel.
49
72
  */
50
- static performTasks<T, K = unknown>(input: T[], taskFn: PromiseTaskFn<T, K>, config?: PerformTasksConfig<T>): Promise<PerformTasksResult<T, K>>;
51
- static performTask<O>(taskFn: () => Promise<O>, config?: PerformTaskConfig<0>): Promise<PerformTaskResult<O>>;
52
- static _performTask<I, O>(value: I, taskFn: PromiseTaskFn<I, O>, { throwError, retriesAllowed, retryWait, beforeRetry }?: PerformTaskConfig<I>): Promise<[I, O, boolean]>;
73
+ readonly maxParallelTasks?: number;
74
+ /**
75
+ * Optional amount of time to wait between each task.
76
+ */
77
+ readonly waitBetweenTasks?: Milliseconds;
78
+ }
79
+ /**
80
+ * Function that awaits a promise generate from each of the input values.
81
+ *
82
+ * Will throw an error if any error is encountered as soon as it is encountered. No further tasks will be dispatched, but tasks that have already been dispatched will continue to run.
83
+ */
84
+ export declare type PerformTasksInParallelFunction<I> = (input: I[]) => Promise<void>;
85
+ /**
86
+ * Convenience function for calling performTasksInParallelFunction() with the given input.
87
+ *
88
+ * @param input
89
+ * @param config
90
+ * @returns
91
+ */
92
+ export declare function performTasksInParallel<I>(input: I[], config: PerformTasksInParallelFunctionConfig<I>): Promise<void>;
93
+ /**
94
+ * Creates a function that performs tasks in parallel.
95
+ *
96
+ * @param config
97
+ */
98
+ export declare function performTasksInParallelFunction<I>(config: PerformTasksInParallelFunctionConfig<I>): PerformTasksInParallelFunction<I>;
99
+ /**
100
+ * @deprecated Use functions directly instead.
101
+ */
102
+ export declare class PromiseUtility {
103
+ static runTaskForValue<O>(taskFn: () => Promise<O>, config?: RunAsyncTaskForValueConfig<0>): Promise<Maybe<O>>;
104
+ static runTasksForValues<T, K = unknown>(input: T[], taskFn: PromiseAsyncTaskFn<T, K>, config?: RunAsyncTasksForValuesConfig<T>): Promise<K[]>;
105
+ static performTasks<T, K = unknown>(input: T[], taskFn: PromiseAsyncTaskFn<T, K>, config?: PerformAsyncTasksConfig<T>): Promise<PerformAsyncTasksResult<T, K>>;
106
+ static performTask<O>(taskFn: () => Promise<O>, config?: PerformAsyncTaskConfig<0>): Promise<PerformAsyncTaskResult<O>>;
53
107
  }
108
+ /**
109
+ * @deprecated use PerformAsyncTaskResult<O>
110
+ */
111
+ export declare type PerformTaskResult<O> = PerformAsyncTaskResult<O>;
112
+ /**
113
+ * @deprecated use PerformAsyncTasksResult<T, K>
114
+ */
115
+ export declare type PerformTasksResult<T, K> = PerformAsyncTasksResult<T, K>;
116
+ /**
117
+ * @deprecated use PerformAsyncTaskConfig<T>
118
+ */
119
+ export declare type PerformTaskConfig<T = unknown> = PerformAsyncTaskConfig<T>;
120
+ /**
121
+ * @deprecated use RunAsyncTaskForValueConfig<T>
122
+ */
123
+ export declare type ValueTaskConfig<T = unknown> = RunAsyncTaskForValueConfig<T>;
124
+ /**
125
+ * @deprecated use PerformAsyncTasksConfig<T>
126
+ */
127
+ export declare type PerformTasksConfig<T = unknown> = PerformAsyncTasksConfig<T>;
@@ -1,128 +1,224 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PromiseUtility = exports.asPromise = void 0;
3
+ exports.PromiseUtility = exports.performTasksInParallelFunction = exports.performTasksInParallel = exports.performAsyncTask = exports.performAsyncTasks = exports.runAsyncTasksForValues = exports.runAsyncTaskForValue = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const array_number_1 = require("../array/array.number");
5
6
  const wait_1 = require("./wait");
6
- function asPromise(input) {
7
- return Promise.resolve(input);
7
+ /**
8
+ * Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
9
+ */
10
+ function runAsyncTaskForValue(taskFn, config) {
11
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
12
+ const { value } = yield performAsyncTask(taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
13
+ return value;
14
+ });
8
15
  }
9
- exports.asPromise = asPromise;
16
+ exports.runAsyncTaskForValue = runAsyncTaskForValue;
17
+ /**
18
+ * Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
19
+ *
20
+ * @param input
21
+ * @param taskFn
22
+ * @param config
23
+ * @returns
24
+ */
25
+ function runAsyncTasksForValues(input, taskFn, config) {
26
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ const results = yield performAsyncTasks(input, taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
28
+ return results.results.map((x) => x[1]);
29
+ });
30
+ }
31
+ exports.runAsyncTasksForValues = runAsyncTasksForValues;
32
+ /**
33
+ * Performs the input tasks, and will retry tasks if they fail, up to a certain point.
34
+ *
35
+ * This is useful for retrying sections that may experience optimistic concurrency collisions.
36
+ */
37
+ function performAsyncTasks(input, taskFn, config = { throwError: true }) {
38
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ const { sequential, maxParallelTasks, waitBetweenTasks } = config;
40
+ let taskResults = [];
41
+ yield performTasksInParallelFunction({
42
+ taskFactory: (value, i) => _performAsyncTask(value, taskFn, config).then((x) => {
43
+ taskResults[i] = x;
44
+ }),
45
+ maxParallelTasks,
46
+ sequential,
47
+ waitBetweenTasks
48
+ })(input);
49
+ const succeded = [];
50
+ const failed = [];
51
+ const results = [];
52
+ const errors = [];
53
+ taskResults.forEach((x) => {
54
+ const success = x[2];
55
+ if (success) {
56
+ succeded.push(x[0]);
57
+ results.push([x[0], x[1]]);
58
+ }
59
+ else {
60
+ failed.push(x[0]);
61
+ errors.push([x[0], x[1]]);
62
+ }
63
+ });
64
+ return {
65
+ succeded,
66
+ failed,
67
+ results,
68
+ errors
69
+ };
70
+ });
71
+ }
72
+ exports.performAsyncTasks = performAsyncTasks;
73
+ function performAsyncTask(taskFn, config) {
74
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
75
+ const [, value, success] = yield _performAsyncTask(0, () => taskFn(), config);
76
+ return { value, success };
77
+ });
78
+ }
79
+ exports.performAsyncTask = performAsyncTask;
80
+ function _performAsyncTask(value, taskFn, config = {}) {
81
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
82
+ const { throwError: inputThrowError, retriesAllowed: inputRetriesAllowed, retryWait = 200, beforeRetry } = config;
83
+ const throwError = inputThrowError !== null && inputThrowError !== void 0 ? inputThrowError : true; // throw errors by default
84
+ const retriesAllowed = inputRetriesAllowed ? inputRetriesAllowed : 0;
85
+ function tryTask(value, tryNumber) {
86
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ try {
88
+ const result = yield taskFn(value, tryNumber);
89
+ return [result, true];
90
+ }
91
+ catch (e) {
92
+ return [e, false];
93
+ }
94
+ });
95
+ }
96
+ function iterateTask(value, tryNumber) {
97
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
+ const result = yield tryTask(value, tryNumber);
99
+ const success = result[1];
100
+ function doNextTry() {
101
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
102
+ const nextTryNumber = tryNumber + 1;
103
+ if (beforeRetry) {
104
+ yield beforeRetry(value, nextTryNumber);
105
+ }
106
+ return iterateTask(value, tryNumber + 1);
107
+ });
108
+ }
109
+ if (success) {
110
+ return [value, ...result];
111
+ }
112
+ const retriesRemaining = retriesAllowed - tryNumber;
113
+ if (retriesRemaining > 0) {
114
+ return retryWait ? (0, wait_1.waitForMs)(retryWait).then(() => doNextTry()) : doNextTry();
115
+ }
116
+ else {
117
+ // Error out.
118
+ if (throwError) {
119
+ throw result[0];
120
+ }
121
+ else {
122
+ return [value, undefined, false];
123
+ }
124
+ }
125
+ });
126
+ }
127
+ return iterateTask(value, 0);
128
+ });
129
+ }
130
+ /**
131
+ * Convenience function for calling performTasksInParallelFunction() with the given input.
132
+ *
133
+ * @param input
134
+ * @param config
135
+ * @returns
136
+ */
137
+ function performTasksInParallel(input, config) {
138
+ return performTasksInParallelFunction(config)(input);
139
+ }
140
+ exports.performTasksInParallel = performTasksInParallel;
141
+ /**
142
+ * Creates a function that performs tasks in parallel.
143
+ *
144
+ * @param config
145
+ */
146
+ function performTasksInParallelFunction(config) {
147
+ const { taskFactory, sequential, maxParallelTasks: inputMaxParallelTasks, waitBetweenTasks } = config;
148
+ const maxParallelTasks = inputMaxParallelTasks !== null && inputMaxParallelTasks !== void 0 ? inputMaxParallelTasks : (sequential ? 1 : undefined);
149
+ if (!maxParallelTasks) {
150
+ // if the max number of parallel tasks is not defined, then run all tasks at once
151
+ return (input) => tslib_1.__awaiter(this, void 0, void 0, function* () {
152
+ yield Promise.all(input.map((value, i) => taskFactory(value, i)));
153
+ });
154
+ }
155
+ else {
156
+ return (input) => {
157
+ if (input.length === 0) {
158
+ return Promise.resolve();
159
+ }
160
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
161
+ const maxPromisesToRunAtOneTime = Math.min(maxParallelTasks, input.length);
162
+ const endIndex = input.length;
163
+ let i = 0;
164
+ let finishedParallels = 0;
165
+ let hasEncounteredFailure = false;
166
+ // start initial promises
167
+ function dispatchNextPromise() {
168
+ const hasNext = i < endIndex;
169
+ if (hasNext && !hasEncounteredFailure) {
170
+ const value = input[i];
171
+ const promise = taskFactory(value, i);
172
+ i += 1;
173
+ promise.then(() => {
174
+ setTimeout(dispatchNextPromise, waitBetweenTasks);
175
+ }, (e) => {
176
+ hasEncounteredFailure = true;
177
+ reject(e);
178
+ });
179
+ }
180
+ else if (!hasNext) {
181
+ finishedParallels += 1;
182
+ // only resolve after the last parallel is complete
183
+ if (finishedParallels === maxPromisesToRunAtOneTime) {
184
+ resolve();
185
+ }
186
+ }
187
+ }
188
+ // run the initial promises
189
+ (0, array_number_1.range)(0, maxPromisesToRunAtOneTime).forEach(() => {
190
+ dispatchNextPromise();
191
+ });
192
+ }));
193
+ };
194
+ }
195
+ }
196
+ exports.performTasksInParallelFunction = performTasksInParallelFunction;
197
+ // MARK: Compat
198
+ /**
199
+ * @deprecated Use functions directly instead.
200
+ */
10
201
  class PromiseUtility {
11
202
  // MARK: Run
12
- /**
13
- * Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
14
- */
15
203
  static runTaskForValue(taskFn, config) {
16
204
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
- const { value } = yield this.performTask(taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
18
- return value;
205
+ return runAsyncTaskForValue(taskFn, Object.assign(Object.assign({}, config), { retriesAllowed: 5 }));
19
206
  });
20
207
  }
21
- /**
22
- * Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
23
- *
24
- * @param input
25
- * @param taskFn
26
- * @param config
27
- * @returns
28
- */
29
208
  static runTasksForValues(input, taskFn, config) {
30
209
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
- const results = yield PromiseUtility.performTasks(input, taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
32
- return results.results.map((x) => x[1]);
210
+ return runAsyncTasksForValues(input, taskFn, Object.assign(Object.assign({}, config), { retriesAllowed: 5 }));
33
211
  });
34
212
  }
35
213
  // MARK: Perform
36
- /**
37
- * Performs the input tasks, and will retry tasks if they fail, up to a certain point.
38
- *
39
- * This is useful for retrying sections that may experience optimistic concurrency collisions.
40
- */
41
214
  static performTasks(input, taskFn, config = { throwError: true }) {
42
215
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
- let taskResults;
44
- if (config.sequential) {
45
- taskResults = [];
46
- for (let i = 0; i < input.length; i += 1) {
47
- const value = input[i];
48
- const taskResult = yield PromiseUtility._performTask(value, taskFn, config);
49
- taskResults.push(taskResult);
50
- }
51
- }
52
- else {
53
- taskResults = yield Promise.all(input.map((value) => PromiseUtility._performTask(value, taskFn, config)));
54
- }
55
- const succeded = [];
56
- const failed = [];
57
- const results = [];
58
- taskResults.forEach((x) => {
59
- const success = x[2];
60
- if (success) {
61
- succeded.push(x[0]);
62
- results.push([x[0], x[1]]);
63
- }
64
- else {
65
- failed.push(x[0]);
66
- }
67
- });
68
- return {
69
- succeded,
70
- failed,
71
- results
72
- };
216
+ return performAsyncTasks(input, taskFn, Object.assign(Object.assign({}, config), { retriesAllowed: 5 }));
73
217
  });
74
218
  }
75
219
  static performTask(taskFn, config) {
76
220
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
77
- const [, value, success] = yield PromiseUtility._performTask(0, () => taskFn(), config);
78
- return { value, success };
79
- });
80
- }
81
- static _performTask(value, taskFn, { throwError, retriesAllowed = 5, retryWait = 200, beforeRetry } = { throwError: true }) {
82
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
- function tryTask(value, tryNumber) {
84
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
85
- try {
86
- const result = yield taskFn(value, tryNumber);
87
- return [result, true];
88
- }
89
- catch (e) {
90
- return [e, false];
91
- }
92
- });
93
- }
94
- function iterateTask(value, tryNumber) {
95
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
96
- const result = yield tryTask(value, tryNumber);
97
- const success = result[1];
98
- function doNextTry() {
99
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
100
- const nextTryNumber = tryNumber + 1;
101
- if (beforeRetry) {
102
- yield beforeRetry(value, nextTryNumber);
103
- }
104
- return iterateTask(value, tryNumber + 1);
105
- });
106
- }
107
- if (success) {
108
- return [value, ...result];
109
- }
110
- const retriesRemaining = retriesAllowed - tryNumber;
111
- if (retriesRemaining > 0) {
112
- return retryWait ? (0, wait_1.waitForMs)(retryWait).then(() => doNextTry()) : doNextTry();
113
- }
114
- else {
115
- // Error out.
116
- if (throwError) {
117
- throw result[0];
118
- }
119
- else {
120
- return [value, undefined, false];
121
- }
122
- }
123
- });
124
- }
125
- return iterateTask(value, 0);
221
+ return performAsyncTask(taskFn, Object.assign(Object.assign({}, config), { retriesAllowed: 5 }));
126
222
  });
127
223
  }
128
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.ts"],"names":[],"mappings":";;;;AACA,iCAAmC;AAInC,SAAgB,SAAS,CAAI,KAAwB;IACnD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,8BAEC;AAoCD,MAAa,cAAc;IACzB,YAAY;IACZ;;OAEG;IACH,MAAM,CAAO,eAAe,CAAI,MAAwB,EAAE,MAA2B;;YACnF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,kCAC1C,MAAM,KACT,UAAU,EAAE,IAAI,IAChB,CAAC;YAEH,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED;;;;;;;OAOG;IACH,MAAM,CAAO,iBAAiB,CAAiB,KAAU,EAAE,MAA2B,EAAE,MAA8B;;YACpH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,kCAC1D,MAAM,KACT,UAAU,EAAE,IAAI,IAChB,CAAC;YAEH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;KAAA;IAED,gBAAgB;IAChB;;;;OAIG;IACH,MAAM,CAAO,YAAY,CAAiB,KAAU,EAAE,MAA2B,EAAE,SAAgC,EAAE,UAAU,EAAE,IAAI,EAAE;;YACrI,IAAI,WAA8B,CAAC;YAEnC,IAAI,MAAM,CAAC,UAAU,EAAE;gBACrB,WAAW,GAAG,EAAE,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC5E,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC9B;aACF;iBAAM;gBACL,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAC3G;YAED,MAAM,QAAQ,GAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAErB,IAAI,OAAO,EAAE;oBACX,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B;qBAAM;oBACL,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnB;YACH,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ;gBACR,MAAM;gBACN,OAAO;aACR,CAAC;QACJ,CAAC;KAAA;IAED,MAAM,CAAO,WAAW,CAAI,MAAwB,EAAE,MAA6B;;YACjF,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YACxF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;KAAA;IAED,MAAM,CAAO,YAAY,CAAO,KAAQ,EAAE,MAA2B,EAAE,EAAE,UAAU,EAAE,cAAc,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,WAAW,KAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;;YAClL,SAAe,OAAO,CAAC,KAAQ,EAAE,SAAiB;;oBAChD,IAAI;wBACF,MAAM,MAAM,GAAM,MAAM,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;wBACjD,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;qBACvB;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;qBACnB;gBACH,CAAC;aAAA;YAED,SAAe,WAAW,CAAC,KAAQ,EAAE,SAAiB;;oBACpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAE1B,SAAe,SAAS;;4BACtB,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,CAAC;4BAEpC,IAAI,WAAW,EAAE;gCACf,MAAM,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;6BACzC;4BAED,OAAO,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;wBAC3C,CAAC;qBAAA;oBAED,IAAI,OAAO,EAAE;wBACX,OAAO,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC;qBAC3B;oBAED,MAAM,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAC;oBAEpD,IAAI,gBAAgB,GAAG,CAAC,EAAE;wBACxB,OAAO,SAAS,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;qBAC/E;yBAAM;wBACL,aAAa;wBACb,IAAI,UAAU,EAAE;4BACd,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;yBACjB;6BAAM;4BACL,OAAO,CAAC,KAAK,EAAE,SAAyB,EAAE,KAAK,CAAC,CAAC;yBAClD;qBACF;gBACH,CAAC;aAAA;YAED,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;KAAA;CACF;AA1HD,wCA0HC"}
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A promise or a value.
3
+ */
4
+ export declare type PromiseOrValue<T> = Promise<T> | T;
5
+ /**
6
+ * Convenience function for calling Promise.resolve
7
+ *
8
+ * @param input
9
+ * @returns
10
+ */
11
+ export declare function asPromise<T>(input: PromiseOrValue<T>): Promise<T>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asPromise = void 0;
4
+ /**
5
+ * Convenience function for calling Promise.resolve
6
+ *
7
+ * @param input
8
+ * @returns
9
+ */
10
+ function asPromise(input) {
11
+ return Promise.resolve(input);
12
+ }
13
+ exports.asPromise = asPromise;
14
+ //# sourceMappingURL=promise.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.type.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.type.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACH,SAAgB,SAAS,CAAI,KAAwB;IACnD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,8BAEC"}
@@ -1,6 +1,6 @@
1
1
  import { PrimativeKey, ReadKeyFunction } from '../key';
2
2
  import { ArrayOrValue } from '../array/array';
3
- import { PromiseOrValue } from '../promise/promise';
3
+ import { PromiseOrValue } from '../promise/promise.type';
4
4
  /**
5
5
  * Key used to signify
6
6
  */
@@ -1,5 +1,5 @@
1
1
  import { ArrayOrValue } from '../array/array';
2
- import { PromiseOrValue } from '../promise/promise';
2
+ import { PromiseOrValue } from '../promise/promise.type';
3
3
  import { Maybe, MaybeNot } from './maybe.type';
4
4
  /**
5
5
  * Converts one value to another.
@@ -1,5 +1,5 @@
1
1
  import { AsyncGetterOrValue, GetterOrValue } from '../getter';
2
- import { PromiseOrValue } from '../promise/promise';
2
+ import { PromiseOrValue } from '../promise/promise.type';
3
3
  import { MapFunction } from './map';
4
4
  import { Maybe } from './maybe.type';
5
5
  /**
package/test/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.25.16](https://github.com/dereekb/dbx-components/compare/v9.25.15-dev...v9.25.16) (2023-12-01)
6
+
7
+
8
+
9
+ ## [9.25.15](https://github.com/dereekb/dbx-components/compare/v9.25.14-dev...v9.25.15) (2023-11-27)
10
+
11
+
12
+
5
13
  ## [9.25.14](https://github.com/dereekb/dbx-components/compare/v9.25.13-dev...v9.25.14) (2023-11-23)
6
14
 
7
15
 
package/test/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dereekb/util/test",
3
- "version": "9.25.14",
3
+ "version": "9.25.16",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
7
7
  "dependencies": {},
8
8
  "peerDependencies": {
9
- "@dereekb/util": "9.25.14",
9
+ "@dereekb/util": "9.25.16",
10
10
  "lodash.isequal": "^4.5.0",
11
11
  "make-error": "^1.3.0",
12
12
  "class-validator": "^0.13.2",