@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 +8 -0
- package/fetch/CHANGELOG.md +8 -0
- package/fetch/package.json +2 -2
- package/package.json +1 -1
- package/src/lib/date/date.d.ts +1 -0
- package/src/lib/date/date.js +3 -2
- package/src/lib/date/date.js.map +1 -1
- package/src/lib/getter/getter.d.ts +8 -1
- package/src/lib/getter/getter.js +11 -1
- package/src/lib/getter/getter.js.map +1 -1
- package/src/lib/grouping.d.ts +3 -1
- package/src/lib/grouping.js +9 -6
- package/src/lib/grouping.js.map +1 -1
- package/src/lib/number/dollar.d.ts +8 -0
- package/src/lib/number/dollar.js +6 -2
- package/src/lib/number/dollar.js.map +1 -1
- package/src/lib/promise/index.d.ts +1 -0
- package/src/lib/promise/index.js +1 -0
- package/src/lib/promise/index.js.map +1 -1
- package/src/lib/promise/map.d.ts +1 -1
- package/src/lib/promise/promise.d.ts +111 -37
- package/src/lib/promise/promise.js +199 -103
- package/src/lib/promise/promise.js.map +1 -1
- package/src/lib/promise/promise.type.d.ts +11 -0
- package/src/lib/promise/promise.type.js +14 -0
- package/src/lib/promise/promise.type.js.map +1 -0
- package/src/lib/service/handler.d.ts +1 -1
- package/src/lib/value/map.d.ts +1 -1
- package/src/lib/value/use.d.ts +1 -1
- package/test/CHANGELOG.md +8 -0
- package/test/package.json +2 -2
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
|
|
package/fetch/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/fetch/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/util/fetch",
|
|
3
|
-
"version": "9.25.
|
|
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.
|
|
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
package/src/lib/date/date.d.ts
CHANGED
|
@@ -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;
|
package/src/lib/date/date.js
CHANGED
|
@@ -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.
|
|
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
|
/**
|
package/src/lib/date/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/date/date.ts"],"names":[],"mappings":";;;AAAA,0CAAkE;AAUlE;;GAEG;AACU,QAAA,0BAA0B,GAAG,6EAA6E,CAAC;AAExH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,kCAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,kDAEC;AASD;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,oFAAoF,CAAC;AAE1H,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,6BAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAFD,0CAEC;AA4BD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,CAAoC,EAAE,CAAoC;IACxG,MAAM,GAAG,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,CAAC;IACxB,MAAM,GAAG,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,CAAC;IACxB,OAAO,IAAA,wCAAgC,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAJD,0CAIC;AAED;;GAEG;AACU,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAkBzC,SAAgB,6BAA6B,CAAC,QAA+B;IAC3E,OAAO,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,2BAAmB,CAAC;AAC9D,CAAC;AAFD,sEAEC;AAuBD;;GAEG;AACU,QAAA,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;GAEG;AACU,QAAA,8BAA8B,GAAG,qBAAqB,CAAC;AAEpE;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,gCAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAFD,gDAEC;AAED,SAAgB,uBAAuB,CAAC,KAAa;IACnD,OAAO,sCAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAFD,0DAEC;AAOD;;GAEG;AACU,QAAA,iCAAiC,GAAG,yBAAyB,CAAC;AAE3E,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,yCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,kDAEC;AAED;;;;;GAKG;AACH,SAAgB,6BAA6B,CAAC,SAA4B;IACxE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;KACrB;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;KACjB;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;KACpB;IAED,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,sEAiBC;AAkBY,QAAA,YAAY,GAAG,EAAE,CAAC;AAClB,QAAA,iBAAiB,GAAG,EAAE,CAAC;AACvB,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,eAAe,GAAG,EAAE,CAAC;AACrB,QAAA,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;
|
|
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>;
|
package/src/lib/getter/getter.js
CHANGED
|
@@ -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"}
|
package/src/lib/grouping.d.ts
CHANGED
|
@@ -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>(
|
|
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.
|
package/src/lib/grouping.js
CHANGED
|
@@ -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(
|
|
14
|
-
array = []
|
|
15
|
-
const
|
|
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
|
|
17
|
+
const batch = array.splice(0, batchSize);
|
|
18
|
+
batch.i = i;
|
|
19
|
+
batches.push(batch);
|
|
20
|
+
i += 1;
|
|
18
21
|
}
|
|
19
|
-
return
|
|
22
|
+
return batches;
|
|
20
23
|
}
|
|
21
24
|
exports.batch = batch;
|
|
22
25
|
/**
|
package/src/lib/grouping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/grouping.ts"],"names":[],"mappings":";;;AACA,qCAAuC;
|
|
1
|
+
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/grouping.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AAmDvC;;;;;;GAMG;AACH,SAAgB,KAAK,CAAI,KAAU,EAAE,SAAiB;IACpD,MAAM,KAAK,GAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,iCAAiC;IAChE,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAoB,CAAC;QAC3D,KAAmC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,IAAI,CAAC,CAAC;KACR;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAbD,sBAaC;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"}
|
|
@@ -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
|
*
|
package/src/lib/number/dollar.js
CHANGED
|
@@ -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,
|
|
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;
|
|
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"}
|
package/src/lib/promise/index.js
CHANGED
|
@@ -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"}
|
package/src/lib/promise/map.d.ts
CHANGED
|
@@ -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
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
10
|
-
succeded:
|
|
11
|
-
failed:
|
|
12
|
-
results: [
|
|
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
|
|
15
|
-
throwError?: boolean;
|
|
16
|
-
retriesAllowed?: number;
|
|
17
|
-
retryWait?: number;
|
|
30
|
+
export interface PerformAsyncTaskConfig<I = unknown> {
|
|
18
31
|
/**
|
|
19
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
48
|
+
readonly beforeRetry?: (value: I, tryNumber?: number) => void | Promise<void>;
|
|
29
49
|
}
|
|
30
|
-
export
|
|
31
|
-
|
|
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
|
-
*
|
|
61
|
+
* Creates a promise from the input.
|
|
34
62
|
*/
|
|
35
|
-
|
|
63
|
+
readonly taskFactory: (input: I, value: IndexNumber) => Promise<void>;
|
|
36
64
|
/**
|
|
37
|
-
*
|
|
65
|
+
* Whether or not tasks are performed sequentially or if tasks are all done in "parellel".
|
|
38
66
|
*
|
|
39
|
-
*
|
|
40
|
-
* @param taskFn
|
|
41
|
-
* @param config
|
|
42
|
-
* @returns
|
|
67
|
+
* Is ignored if maxParallelTasks is set.
|
|
43
68
|
*/
|
|
44
|
-
|
|
69
|
+
readonly sequential?: boolean;
|
|
45
70
|
/**
|
|
46
|
-
*
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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.
|
|
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
|
-
|
|
7
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;;
|
|
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"}
|
package/src/lib/value/map.d.ts
CHANGED
package/src/lib/value/use.d.ts
CHANGED
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.
|
|
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.
|
|
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",
|