@dereekb/util 1.2.0 → 3.0.0
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 +54 -9
- package/README.md +1 -1
- package/package.json +8 -5
- package/src/index.js +2 -2
- package/src/index.js.map +1 -1
- package/src/lib/array/array.boolean.d.ts +4 -2
- package/src/lib/array/array.boolean.js +11 -1
- package/src/lib/array/array.boolean.js.map +1 -1
- package/src/lib/array/array.d.ts +24 -2
- package/src/lib/array/array.index.d.ts +1 -1
- package/src/lib/array/array.js +37 -2
- package/src/lib/array/array.js.map +1 -1
- package/src/lib/array/array.limit.d.ts +1 -1
- package/src/lib/array/array.make.d.ts +1 -1
- package/src/lib/array/array.make.js +2 -2
- package/src/lib/array/array.make.js.map +1 -1
- package/src/lib/array/array.map.d.ts +1 -1
- package/src/lib/array/array.set.d.ts +2 -16
- package/src/lib/array/array.set.js +21 -55
- package/src/lib/array/array.set.js.map +1 -1
- package/src/lib/array/array.string.d.ts +7 -5
- package/src/lib/array/array.string.js +14 -4
- package/src/lib/array/array.string.js.map +1 -1
- package/src/lib/array/array.unique.d.ts +1 -1
- package/src/lib/array/array.value.d.ts +15 -1
- package/src/lib/array/array.value.js +21 -1
- package/src/lib/array/array.value.js.map +1 -1
- package/src/lib/array/index.js +12 -12
- package/src/lib/array/index.js.map +1 -1
- package/src/lib/assertion/index.js +5 -5
- package/src/lib/assertion/index.js.map +1 -1
- package/src/lib/auth/auth.role.claims.d.ts +98 -0
- package/src/lib/auth/auth.role.claims.js +93 -0
- package/src/lib/auth/auth.role.claims.js.map +1 -0
- package/src/lib/auth/auth.role.d.ts +22 -0
- package/src/lib/auth/auth.role.js +17 -0
- package/src/lib/auth/auth.role.js.map +1 -0
- package/src/lib/auth/index.d.ts +2 -0
- package/src/lib/auth/index.js +6 -0
- package/src/lib/auth/index.js.map +1 -0
- package/src/lib/contact/index.js +3 -3
- package/src/lib/contact/index.js.map +1 -1
- package/src/lib/date/date.d.ts +1 -1
- package/src/lib/date/date.time.d.ts +4 -2
- package/src/lib/date/date.time.js +13 -1
- package/src/lib/date/date.time.js.map +1 -1
- package/src/lib/date/index.js +2 -2
- package/src/lib/date/index.js.map +1 -1
- package/src/lib/error/error.d.ts +6 -1
- package/src/lib/error/error.js +8 -1
- package/src/lib/error/error.js.map +1 -1
- package/src/lib/error/error.server.d.ts +5 -12
- package/src/lib/error/error.server.js.map +1 -1
- package/src/lib/error/index.js +2 -2
- package/src/lib/error/index.js.map +1 -1
- package/src/lib/filter/index.js +1 -1
- package/src/lib/filter/index.js.map +1 -1
- package/src/lib/function/function.forward.d.ts +9 -0
- package/src/lib/function/function.forward.js +18 -0
- package/src/lib/function/function.forward.js.map +1 -0
- package/src/lib/function/index.d.ts +1 -0
- package/src/lib/function/index.js +5 -0
- package/src/lib/function/index.js.map +1 -0
- package/src/lib/getter/getter.cache.d.ts +38 -0
- package/src/lib/getter/getter.cache.js +23 -0
- package/src/lib/getter/getter.cache.js.map +1 -0
- package/src/lib/getter/getter.d.ts +61 -0
- package/src/lib/getter/getter.js +48 -0
- package/src/lib/getter/getter.js.map +1 -0
- package/src/lib/getter/getter.map.d.ts +15 -0
- package/src/lib/getter/getter.map.js +24 -0
- package/src/lib/getter/getter.map.js.map +1 -0
- package/src/lib/getter/index.d.ts +3 -0
- package/src/lib/getter/index.js +7 -0
- package/src/lib/getter/index.js.map +1 -0
- package/src/lib/grouping.d.ts +4 -4
- package/src/lib/index.d.ts +9 -5
- package/src/lib/index.js +31 -28
- package/src/lib/index.js.map +1 -1
- package/src/lib/iterable/index.d.ts +2 -0
- package/src/lib/iterable/index.js +6 -0
- package/src/lib/iterable/index.js.map +1 -0
- package/src/lib/iterable/iterable.d.ts +53 -0
- package/src/lib/iterable/iterable.js +113 -0
- package/src/lib/iterable/iterable.js.map +1 -0
- package/src/lib/iterable/iterable.map.d.ts +8 -0
- package/src/lib/iterable/iterable.map.js +18 -0
- package/src/lib/iterable/iterable.map.js.map +1 -0
- package/src/lib/iterate.js +1 -1
- package/src/lib/key.d.ts +1 -1
- package/src/lib/map/index.d.ts +2 -0
- package/src/lib/map/index.js +6 -0
- package/src/lib/map/index.js.map +1 -0
- package/src/lib/map/map.d.ts +9 -0
- package/src/lib/map/map.intersection.d.ts +15 -0
- package/src/lib/map/map.intersection.js +24 -0
- package/src/lib/map/map.intersection.js.map +1 -0
- package/src/lib/map/map.js +17 -0
- package/src/lib/map/map.js.map +1 -0
- package/src/lib/misc/host.d.ts +5 -0
- package/src/lib/misc/host.js +13 -0
- package/src/lib/misc/host.js.map +1 -0
- package/src/lib/misc/index.d.ts +1 -0
- package/src/lib/misc/index.js +5 -0
- package/src/lib/misc/index.js.map +1 -0
- package/src/lib/model/index.d.ts +3 -0
- package/src/lib/model/index.js +7 -0
- package/src/lib/model/index.js.map +1 -0
- package/src/lib/model/model.conversion.d.ts +63 -0
- package/src/lib/model/model.conversion.js +66 -0
- package/src/lib/model/model.conversion.js.map +1 -0
- package/src/lib/model/model.copy.d.ts +16 -0
- package/src/lib/model/model.copy.js +20 -0
- package/src/lib/model/model.copy.js.map +1 -0
- package/src/lib/{model.d.ts → model/model.d.ts} +2 -2
- package/src/lib/{model.js → model/model.js} +3 -3
- package/src/lib/model/model.js.map +1 -0
- package/src/lib/number/factory.d.ts +22 -0
- package/src/lib/number/factory.js +22 -0
- package/src/lib/number/factory.js.map +1 -0
- package/src/lib/number/index.d.ts +3 -0
- package/src/lib/number/index.js +7 -0
- package/src/lib/number/index.js.map +1 -0
- package/src/lib/number/random.d.ts +13 -0
- package/src/lib/number/random.js +22 -0
- package/src/lib/number/random.js.map +1 -0
- package/src/lib/{number.d.ts → number/round.d.ts} +0 -13
- package/src/lib/{number.js → number/round.js} +2 -20
- package/src/lib/number/round.js.map +1 -0
- package/src/lib/object/index.d.ts +1 -0
- package/src/lib/object/index.js +4 -3
- package/src/lib/object/index.js.map +1 -1
- package/src/lib/object/object.d.ts +69 -8
- package/src/lib/object/object.equal.d.ts +1 -1
- package/src/lib/object/object.equal.js +3 -3
- package/src/lib/object/object.equal.js.map +1 -1
- package/src/lib/object/object.js +117 -11
- package/src/lib/object/object.js.map +1 -1
- package/src/lib/object/object.map.d.ts +35 -0
- package/src/lib/object/object.map.js +40 -0
- package/src/lib/object/object.map.js.map +1 -0
- package/src/lib/page/index.js +3 -3
- package/src/lib/page/index.js.map +1 -1
- package/src/lib/page/page.d.ts +1 -1
- package/src/lib/page/page.filter.js +1 -1
- package/src/lib/promise/index.d.ts +3 -0
- package/src/lib/promise/index.js +7 -4
- package/src/lib/promise/index.js.map +1 -1
- package/src/lib/promise/is.d.ts +7 -0
- package/src/lib/promise/is.js +15 -0
- package/src/lib/promise/is.js.map +1 -0
- package/src/lib/promise/map.d.ts +10 -0
- package/src/lib/promise/map.js +14 -0
- package/src/lib/promise/map.js.map +1 -0
- package/src/lib/promise/promise.d.ts +13 -1
- package/src/lib/promise/promise.js +26 -8
- package/src/lib/promise/promise.js.map +1 -1
- package/src/lib/promise/promise.loop.d.ts +18 -3
- package/src/lib/promise/promise.loop.js +18 -2
- package/src/lib/promise/promise.loop.js.map +1 -1
- package/src/lib/promise/promise.ref.d.ts +10 -0
- package/src/lib/promise/promise.ref.js +19 -0
- package/src/lib/promise/promise.ref.js.map +1 -0
- package/src/lib/promise/wait.js +2 -2
- package/src/lib/promise/wait.js.map +1 -1
- package/src/lib/relation/index.js +1 -1
- package/src/lib/relation/index.js.map +1 -1
- package/src/lib/relation/relation.js +2 -2
- package/src/lib/set/index.d.ts +4 -0
- package/src/lib/set/index.js +8 -0
- package/src/lib/set/index.js.map +1 -0
- package/src/lib/set/set.allowed.d.ts +23 -0
- package/src/lib/set/set.allowed.js +29 -0
- package/src/lib/set/set.allowed.js.map +1 -0
- package/src/lib/set/set.d.ts +53 -0
- package/src/lib/{set.hashset.d.ts → set/set.hashset.d.ts} +2 -2
- package/src/lib/{set.hashset.js → set/set.hashset.js} +0 -0
- package/src/lib/set/set.hashset.js.map +1 -0
- package/src/lib/set/set.js +114 -0
- package/src/lib/set/set.js.map +1 -0
- package/src/lib/set/set.maybe.d.ts +11 -0
- package/src/lib/set/set.maybe.js +22 -0
- package/src/lib/set/set.maybe.js.map +1 -0
- package/src/lib/sort.d.ts +1 -4
- package/src/lib/sort.js +3 -8
- package/src/lib/sort.js.map +1 -1
- package/src/lib/storage/index.js +4 -4
- package/src/lib/storage/index.js.map +1 -1
- package/src/lib/storage/storage.memory.d.ts +1 -1
- package/src/lib/storage/storage.object.d.ts +1 -1
- package/src/lib/string.d.ts +9 -2
- package/src/lib/string.js +11 -1
- package/src/lib/string.js.map +1 -1
- package/src/lib/tree/index.js +4 -4
- package/src/lib/tree/index.js.map +1 -1
- package/src/lib/tree/tree.expand.d.ts +1 -1
- package/src/lib/type.d.ts +17 -1
- package/src/lib/value/equal.d.ts +41 -0
- package/src/lib/value/equal.js +56 -0
- package/src/lib/value/equal.js.map +1 -0
- package/src/lib/value/index.d.ts +4 -0
- package/src/lib/value/index.js +8 -0
- package/src/lib/value/index.js.map +1 -0
- package/src/lib/value/map.d.ts +13 -0
- package/src/lib/{map.js → value/map.js} +0 -0
- package/src/lib/value/map.js.map +1 -0
- package/src/lib/{value.d.ts → value/maybe.d.ts} +45 -2
- package/src/lib/value/maybe.js +78 -0
- package/src/lib/value/maybe.js.map +1 -0
- package/src/lib/value/modifier.d.ts +58 -0
- package/src/lib/value/modifier.js +69 -0
- package/src/lib/value/modifier.js.map +1 -0
- package/src/test/index.d.ts +1 -0
- package/src/test/index.js +3 -2
- package/src/test/index.js.map +1 -1
- package/src/test/jest.d.ts +21 -1
- package/src/test/jest.function.d.ts +9 -0
- package/src/test/jest.function.js +14 -0
- package/src/test/jest.function.js.map +1 -0
- package/src/test/jest.js +64 -36
- package/src/test/jest.js.map +1 -1
- package/src/test/jest.wrap.js +5 -5
- package/src/test/jest.wrap.js.map +1 -1
- package/src/lib/getter.d.ts +0 -26
- package/src/lib/getter.js +0 -13
- package/src/lib/getter.js.map +0 -1
- package/src/lib/map.d.ts +0 -2
- package/src/lib/map.js.map +0 -1
- package/src/lib/model.js.map +0 -1
- package/src/lib/number.js.map +0 -1
- package/src/lib/set.d.ts +0 -0
- package/src/lib/set.hashset.js.map +0 -1
- package/src/lib/set.js +0 -2
- package/src/lib/set.js.map +0 -1
- package/src/lib/value.js +0 -28
- package/src/lib/value.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ArrayOrValue } from '../array/array';
|
|
2
|
+
/**
|
|
3
|
+
* Object used as a map of keys that will intersect with input keys.
|
|
4
|
+
*/
|
|
5
|
+
export interface MapKeysIntersectionObject<T> {
|
|
6
|
+
[key: string]: ArrayOrValue<T>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Builds an array from intersection of the input object and input keys that correspond to values that should be part of the result.
|
|
10
|
+
*
|
|
11
|
+
* @param object
|
|
12
|
+
* @param keys
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare function mapKeysIntersectionObjectToArray<T>(object: MapKeysIntersectionObject<T>, keys: Iterable<string>): T[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapKeysIntersectionObjectToArray = void 0;
|
|
4
|
+
const array_1 = require("../array/array");
|
|
5
|
+
/**
|
|
6
|
+
* Builds an array from intersection of the input object and input keys that correspond to values that should be part of the result.
|
|
7
|
+
*
|
|
8
|
+
* @param object
|
|
9
|
+
* @param keys
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
function mapKeysIntersectionObjectToArray(object, keys) {
|
|
13
|
+
const keysToApply = Array.from(keys);
|
|
14
|
+
const applyArray = [];
|
|
15
|
+
keysToApply.forEach((key) => {
|
|
16
|
+
const values = object[key];
|
|
17
|
+
if (values != null) {
|
|
18
|
+
(0, array_1.mergeArrayOrValueIntoArray)(applyArray, values);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return applyArray;
|
|
22
|
+
}
|
|
23
|
+
exports.mapKeysIntersectionObjectToArray = mapKeysIntersectionObjectToArray;
|
|
24
|
+
//# sourceMappingURL=map.intersection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.intersection.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/map/map.intersection.ts"],"names":[],"mappings":";;;AAAA,0CAA0E;AAS1E;;;;;;GAMG;AACH,SAAgB,gCAAgC,CAAI,MAAoC,EAAE,IAAsB;IAC9G,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAQ,EAAE,CAAC;IAE3B,WAAW,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAA,kCAA0B,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SAChD;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAbD,4EAaC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.combineMaps = void 0;
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param maps
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
function combineMaps(...maps) {
|
|
10
|
+
const result = new Map();
|
|
11
|
+
maps.forEach((map) => {
|
|
12
|
+
map === null || map === void 0 ? void 0 : map.forEach((x, key) => result.set(key, x));
|
|
13
|
+
});
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
exports.combineMaps = combineMaps;
|
|
17
|
+
//# sourceMappingURL=map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/map/map.ts"],"names":[],"mappings":";;;AAKA;;;;GAIG;AACH,SAAgB,WAAW,CAAO,GAAG,IAAwB;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,kCAQC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.joinHostAndPort = void 0;
|
|
4
|
+
function joinHostAndPort(config) {
|
|
5
|
+
if (config) {
|
|
6
|
+
return `${config.host}:${config.port}`;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
return config;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.joinHostAndPort = joinHostAndPort;
|
|
13
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/misc/host.ts"],"names":[],"mappings":";;;AAEA,SAAgB,eAAe,CAAC,MAAsD;IACpF,IAAI,MAAM,EAAE;QACV,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;KACxC;SAAM;QACL,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AAND,0CAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './host';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/misc/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./model"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./model.copy"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./model.conversion"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,uDAA6B;AAC7B,6DAAmC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { GetterOrValue } from "../getter/getter";
|
|
2
|
+
import { Maybe } from "../value/maybe";
|
|
3
|
+
import { ApplyMapFunctionWithOptions, MapFunction } from "../value/map";
|
|
4
|
+
export declare type ModelMapFunction<I extends object, O extends object> = ApplyMapFunctionWithOptions<Maybe<I>, O, ModelConversionOptions<I, O>>;
|
|
5
|
+
export declare type ModelFromFunction<V extends object, D extends object> = ModelMapFunction<D, V>;
|
|
6
|
+
export declare type ModelToFunction<V extends object, D extends object> = ModelMapFunction<V, D>;
|
|
7
|
+
export interface ModelMapFunctions<V extends object, D extends object> {
|
|
8
|
+
from: ModelFromFunction<V, D>;
|
|
9
|
+
to: ModelToFunction<V, D>;
|
|
10
|
+
}
|
|
11
|
+
export declare type ModelFieldsConversionConfig<I extends object> = {
|
|
12
|
+
[K in keyof I]: ModelFieldConversionConfig;
|
|
13
|
+
};
|
|
14
|
+
export declare function makeModelMapFunctions<V extends object, D extends object>(fields: ModelFieldsConversionConfig<V>): ModelMapFunctions<V, D>;
|
|
15
|
+
export declare type ModelConversionFieldTuple<I extends object> = [keyof I, ModelFieldMapFunction<any, any>];
|
|
16
|
+
export declare type ModelConversionFieldValuesConfig<I extends object> = ModelConversionFieldTuple<I>[];
|
|
17
|
+
export interface ModelConversionOptions<I extends object, O extends object> {
|
|
18
|
+
/**
|
|
19
|
+
* Fields to include.
|
|
20
|
+
*/
|
|
21
|
+
fields?: (keyof I)[];
|
|
22
|
+
/**
|
|
23
|
+
* Whether or not to only convert fields that are defined. Fields with a null value are still converted.
|
|
24
|
+
*/
|
|
25
|
+
definedOnly?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare type ModelConversionFieldValuesFunction<I extends object, O extends object> = ApplyMapFunctionWithOptions<Maybe<I>, O, ModelConversionOptions<I, O>>;
|
|
28
|
+
export declare function makeModelConversionFieldValuesFunction<I extends object, O extends object>(fields: ModelConversionFieldValuesConfig<I>): ModelConversionFieldValuesFunction<I, O>;
|
|
29
|
+
export interface ModelFieldConversionConfig<V = any, D = any> {
|
|
30
|
+
from?: ModelFieldFromConfig<V, D>;
|
|
31
|
+
to?: ModelFieldToConfig<V, D>;
|
|
32
|
+
}
|
|
33
|
+
export interface ModelFieldConvertConfig<I, O> {
|
|
34
|
+
/**
|
|
35
|
+
* Default value to use if the input value is null/undefined.
|
|
36
|
+
*/
|
|
37
|
+
default?: GetterOrValue<O>;
|
|
38
|
+
/**
|
|
39
|
+
* Whether or not to pass through maybe values to the convert function. Must be explicitly set.
|
|
40
|
+
*
|
|
41
|
+
* If a default value is provided, this option is ignored.
|
|
42
|
+
*/
|
|
43
|
+
convertMaybe?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Conversion from I to O.
|
|
46
|
+
*/
|
|
47
|
+
convert?: MapFunction<I, O>;
|
|
48
|
+
}
|
|
49
|
+
export interface ModelFieldFromConfig<V = any, D = any> extends ModelFieldConvertConfig<D, V> {
|
|
50
|
+
}
|
|
51
|
+
export interface ModelFieldToConfig<V = any, D = any> extends ModelFieldConvertConfig<V, D> {
|
|
52
|
+
}
|
|
53
|
+
export declare type ModelFieldMapFunction<I = any, O = any> = MapFunction<Maybe<I>, O>;
|
|
54
|
+
export declare type ModelFieldFromFunction<V, D> = ModelFieldMapFunction<D, V>;
|
|
55
|
+
export declare type ModelFieldToFunction<V, D> = ModelFieldMapFunction<V, D>;
|
|
56
|
+
export interface ModelFieldMapFunctions<V = any, D = any> {
|
|
57
|
+
from: ModelFieldFromFunction<V, D>;
|
|
58
|
+
to: ModelFieldToFunction<V, D>;
|
|
59
|
+
}
|
|
60
|
+
export declare function makeModelFieldMapFunction<I, O>(inputConfig: Maybe<ModelFieldConvertConfig<I, O>>): ModelFieldMapFunction<I, O>;
|
|
61
|
+
export declare const makeModelFieldFromFunction: typeof makeModelFieldMapFunction;
|
|
62
|
+
export declare const makeModelFieldToFunction: typeof makeModelFieldMapFunction;
|
|
63
|
+
export declare function makeModelFieldMapFunctions<V = any, D = any>(config: ModelFieldConversionConfig<V, D>): ModelFieldMapFunctions<V, D>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeModelFieldMapFunctions = exports.makeModelFieldToFunction = exports.makeModelFieldFromFunction = exports.makeModelFieldMapFunction = exports.makeModelConversionFieldValuesFunction = exports.makeModelMapFunctions = void 0;
|
|
4
|
+
const getter_1 = require("../getter/getter");
|
|
5
|
+
const object_1 = require("../object/object");
|
|
6
|
+
function makeModelMapFunctions(fields) {
|
|
7
|
+
const keys = (0, object_1.filterKeyValueTuples)(fields);
|
|
8
|
+
const conversionsByKey = keys.map(([key, field]) => [key, makeModelFieldMapFunctions(field)]);
|
|
9
|
+
const fromConversions = conversionsByKey.map(([key, configs]) => ([key, configs.from]));
|
|
10
|
+
const toConversions = conversionsByKey.map(([key, configs]) => ([key, configs.to]));
|
|
11
|
+
const from = makeModelConversionFieldValuesFunction(fromConversions);
|
|
12
|
+
const to = makeModelConversionFieldValuesFunction(toConversions);
|
|
13
|
+
return {
|
|
14
|
+
from,
|
|
15
|
+
to
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.makeModelMapFunctions = makeModelMapFunctions;
|
|
19
|
+
function makeModelConversionFieldValuesFunction(fields) {
|
|
20
|
+
return (input, target, options) => {
|
|
21
|
+
target = target !== null && target !== void 0 ? target : {};
|
|
22
|
+
if (input) {
|
|
23
|
+
let targetFields = fields;
|
|
24
|
+
// if options are provided, filter down.
|
|
25
|
+
if (options) {
|
|
26
|
+
const fieldsToConvert = new Set((0, object_1.findPOJOKeys)(input, {
|
|
27
|
+
keysFilter: options.fields,
|
|
28
|
+
valueFilter: (options.definedOnly === false) ? object_1.KeyValueTypleValueFilter.NONE : object_1.KeyValueTypleValueFilter.UNDEFINED
|
|
29
|
+
}));
|
|
30
|
+
targetFields = fields.filter(x => fieldsToConvert.has(x[0]));
|
|
31
|
+
}
|
|
32
|
+
targetFields.forEach(([key, convert]) => target[key] = convert(input[key]));
|
|
33
|
+
}
|
|
34
|
+
return target;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.makeModelConversionFieldValuesFunction = makeModelConversionFieldValuesFunction;
|
|
38
|
+
function makeModelFieldMapFunction(inputConfig) {
|
|
39
|
+
const config = inputConfig !== null && inputConfig !== void 0 ? inputConfig : {};
|
|
40
|
+
const { convertMaybe, convert = (x) => x, default: defaultValue } = config;
|
|
41
|
+
const getDefaultValue = (0, getter_1.asGetter)(defaultValue);
|
|
42
|
+
return (input) => {
|
|
43
|
+
if (input == null) {
|
|
44
|
+
if (convertMaybe) {
|
|
45
|
+
return convert(input);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return getDefaultValue();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return convert(input);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
exports.makeModelFieldMapFunction = makeModelFieldMapFunction;
|
|
57
|
+
exports.makeModelFieldFromFunction = makeModelFieldMapFunction;
|
|
58
|
+
exports.makeModelFieldToFunction = makeModelFieldMapFunction;
|
|
59
|
+
function makeModelFieldMapFunctions(config) {
|
|
60
|
+
return {
|
|
61
|
+
from: makeModelFieldMapFunction(config.from),
|
|
62
|
+
to: makeModelFieldMapFunction(config.to),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
exports.makeModelFieldMapFunctions = makeModelFieldMapFunctions;
|
|
66
|
+
//# sourceMappingURL=model.conversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.conversion.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.conversion.ts"],"names":[],"mappings":";;;AAAA,6CAAmE;AACnE,6CAAgG;AAkBhG,SAAgB,qBAAqB,CAAqC,MAAsC;IAC9G,MAAM,IAAI,GAAG,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAwC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnI,MAAM,eAAe,GAAuC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9I,MAAM,aAAa,GAAuC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExH,MAAM,IAAI,GAA4B,sCAAsC,CAAO,eAAe,CAAC,CAAC;IACpG,MAAM,EAAE,GAA0B,sCAAsC,CAAO,aAAa,CAAC,CAAC;IAE9F,OAAO;QACL,IAAI;QACJ,EAAE;KACH,CAAC;AACJ,CAAC;AAbD,sDAaC;AAkBD,SAAgB,sCAAsC,CAAqC,MAA2C;IACpI,OAAO,CAAC,KAAe,EAAE,MAA0B,EAAE,OAA6C,EAAE,EAAE;QACpG,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAgB,CAAC;QAEpC,IAAI,KAAK,EAAE;YACT,IAAI,YAAY,GAAG,MAAM,CAAC;YAE1B,wCAAwC;YACxC,IAAI,OAAO,EAAE;gBACX,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,IAAA,qBAAY,EAAC,KAAK,EAAE;oBAClD,UAAU,EAAE,OAAO,CAAC,MAAM;oBAC1B,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,iCAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAwB,CAAC,SAAS;iBAClH,CAAC,CAAC,CAAC;gBAEJ,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9D;YAED,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,MAAO,CAAC,GAAyB,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACpG;QAED,OAAO,MAAW,CAAC;IACrB,CAAC,CAAA;AACH,CAAC;AAtBD,wFAsBC;AAyCD,SAAgB,yBAAyB,CAAO,WAAiD;IAC/F,MAAM,MAAM,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC;IACjC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,CAAC,CAAI,EAAE,EAAE,CAAC,CAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACrF,MAAM,eAAe,GAAqB,IAAA,iBAAQ,EAAC,YAAY,CAAC,CAAC;IAEjE,OAAO,CAAC,KAAe,EAAE,EAAE;QACzB,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,IAAI,YAAY,EAAE;gBAChB,OAAO,OAAO,CAAC,KAAY,CAAC,CAAC;aAC9B;iBAAM;gBACL,OAAO,eAAe,EAAE,CAAC;aAC1B;SACF;aAAM;YACL,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;SACvB;IACH,CAAC,CAAA;AACH,CAAC;AAhBD,8DAgBC;AAEY,QAAA,0BAA0B,GAAG,yBAAyB,CAAC;AACvD,QAAA,wBAAwB,GAAG,yBAAyB,CAAC;AAElE,SAAgB,0BAA0B,CAAmB,MAAwC;IACnG,OAAO;QACL,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5C,EAAE,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;KACzC,CAAA;AACH,CAAC;AALD,gEAKC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Maybe } from '../value/maybe';
|
|
2
|
+
export declare type CopySelectModelFieldsConfig<T = any> = Partial<CopyModelFieldsConfig<T>>;
|
|
3
|
+
export declare type CopyModelFieldsConfig<T = any> = {
|
|
4
|
+
[K in keyof T]: Maybe<CopyModelFieldConfig>;
|
|
5
|
+
};
|
|
6
|
+
export interface CopyModelFieldConfig<V = any> {
|
|
7
|
+
/**
|
|
8
|
+
* Default value if not presented. If default is not defined and there is no value, the key will be ignored entirely.
|
|
9
|
+
*/
|
|
10
|
+
default?: V;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Used for copying one field from one partial object to a target object.
|
|
14
|
+
*/
|
|
15
|
+
export declare type CopyModelFieldFunction<T> = (from: Partial<T>, target: Partial<T>) => void;
|
|
16
|
+
export declare function makeCopyModelFieldFunction<T extends object>(key: keyof T, inputConfig?: Maybe<CopyModelFieldConfig>): (from: Partial<T>, target: Partial<T>) => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeCopyModelFieldFunction = void 0;
|
|
4
|
+
const object_1 = require("../object");
|
|
5
|
+
function makeCopyModelFieldFunction(key, inputConfig) {
|
|
6
|
+
const config = inputConfig !== null && inputConfig !== void 0 ? inputConfig : {};
|
|
7
|
+
const hasDefault = (0, object_1.objectHasKey)(config, 'default');
|
|
8
|
+
const defaultValue = config.default;
|
|
9
|
+
return (from, target) => {
|
|
10
|
+
var _a;
|
|
11
|
+
if ((0, object_1.objectHasKey)(from, key)) {
|
|
12
|
+
target[key] = (_a = from[key]) !== null && _a !== void 0 ? _a : defaultValue;
|
|
13
|
+
}
|
|
14
|
+
else if (hasDefault) {
|
|
15
|
+
target[key] = defaultValue;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
exports.makeCopyModelFieldFunction = makeCopyModelFieldFunction;
|
|
20
|
+
//# sourceMappingURL=model.copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.copy.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.copy.ts"],"names":[],"mappings":";;;AAAA,sCAAyC;AAuBzC,SAAgB,0BAA0B,CAAmB,GAAY,EAAE,WAAyC;IAClH,MAAM,MAAM,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IAEpC,OAAO,CAAC,IAAgB,EAAE,MAAkB,EAAE,EAAE;;QAC9C,IAAI,IAAA,qBAAY,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAA,IAAI,CAAC,GAAG,CAAC,mCAAI,YAAY,CAAC;SACzC;aAAM,IAAI,UAAU,EAAE;YACpB,MAAc,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;SACrC;IACH,CAAC,CAAC;AACJ,CAAC;AAZD,gEAYC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.decodeModelKeyTypePair = exports.encodeModelKeyTypePair = exports.throwKeyIsRequired = exports.isModelKey = exports.readModelKeyFromObject = exports.readModelKey = exports.requireModelKey = exports.readModelKeys = exports.useModelOrKey = exports.makeMultiModelKeyMap = exports.makeModelMap = exports.removeModelsWithKey = exports.removeModelsWithSameKey = exports.symmetricDifferenceWithModels = exports.readModelKeysFromObjects = exports.uniqueModels = exports.uniqueKeys = exports.AbstractUniqueModel = exports.readUniqueModelKey = void 0;
|
|
4
|
-
const
|
|
5
|
-
const array_unique_1 = require("
|
|
4
|
+
const set_1 = require("../set/set");
|
|
5
|
+
const array_unique_1 = require("../array/array.unique");
|
|
6
6
|
const readUniqueModelKey = (model) => model.id;
|
|
7
7
|
exports.readUniqueModelKey = readUniqueModelKey;
|
|
8
8
|
class AbstractUniqueModel {
|
|
@@ -26,7 +26,7 @@ function readModelKeysFromObjects(input, required, read) {
|
|
|
26
26
|
}
|
|
27
27
|
exports.readModelKeysFromObjects = readModelKeysFromObjects;
|
|
28
28
|
function symmetricDifferenceWithModels(a, b, required, read) {
|
|
29
|
-
return (0,
|
|
29
|
+
return (0, set_1.symmetricDifferenceKeys)(readModelKeys(a, required, read), readModelKeys(b, required, read));
|
|
30
30
|
}
|
|
31
31
|
exports.symmetricDifferenceWithModels = symmetricDifferenceWithModels;
|
|
32
32
|
function removeModelsWithSameKey(input, model, read) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GetterOrValue } from '@dereekb/util';
|
|
2
|
+
import { Factory } from './../getter/getter';
|
|
3
|
+
/**
|
|
4
|
+
* incrementingNumberFactory() configuration.
|
|
5
|
+
*/
|
|
6
|
+
export interface IncrementingNumberFactoryConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Value to start at. Defaults to 0.
|
|
9
|
+
*/
|
|
10
|
+
startAt?: number;
|
|
11
|
+
/**
|
|
12
|
+
* Getter to increase by. Defaults to 1.
|
|
13
|
+
*/
|
|
14
|
+
increaseBy?: GetterOrValue<number>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a factory that returns increasing numbers.
|
|
18
|
+
*
|
|
19
|
+
* @param config
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare function incrementingNumberFactory(config?: IncrementingNumberFactoryConfig): Factory<number>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.incrementingNumberFactory = void 0;
|
|
4
|
+
const util_1 = require("@dereekb/util");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a factory that returns increasing numbers.
|
|
7
|
+
*
|
|
8
|
+
* @param config
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function incrementingNumberFactory(config = {}) {
|
|
12
|
+
const { startAt: initial, increaseBy: inputIncreaseBy } = config;
|
|
13
|
+
const increaseBy = (0, util_1.asGetter)(inputIncreaseBy !== null && inputIncreaseBy !== void 0 ? inputIncreaseBy : 1);
|
|
14
|
+
let i = initial !== null && initial !== void 0 ? initial : 0;
|
|
15
|
+
return () => {
|
|
16
|
+
const x = i;
|
|
17
|
+
i += increaseBy();
|
|
18
|
+
return x;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.incrementingNumberFactory = incrementingNumberFactory;
|
|
22
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/factory.ts"],"names":[],"mappings":";;;AAAA,wCAAwD;AAiBxD;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,SAA0C,EAAE;IACpF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACjE,MAAM,UAAU,GAAG,IAAA,eAAQ,EAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC;IAErB,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC,IAAI,UAAU,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAXD,8DAWC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./factory"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./random"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./round"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,mDAAyB;AACzB,kDAAwB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare type RandomNumberFunction = () => number;
|
|
2
|
+
export interface MakeRandomFunction {
|
|
3
|
+
min?: number;
|
|
4
|
+
max: number;
|
|
5
|
+
}
|
|
6
|
+
export declare type MakeRandomFunctionInput = number | MakeRandomFunction;
|
|
7
|
+
/**
|
|
8
|
+
* Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
|
|
9
|
+
*
|
|
10
|
+
* @param maxOrArgs
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare function makeRandomFunction(maxOrArgs: MakeRandomFunctionInput): RandomNumberFunction;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeRandomFunction = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
|
|
6
|
+
*
|
|
7
|
+
* @param maxOrArgs
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
function makeRandomFunction(maxOrArgs) {
|
|
11
|
+
const config = (typeof maxOrArgs === 'number') ? { min: 0, max: maxOrArgs } : maxOrArgs;
|
|
12
|
+
const { min, max } = config;
|
|
13
|
+
if (min != null) {
|
|
14
|
+
const range = max - min;
|
|
15
|
+
return () => (Math.random() * range) + min;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return () => Math.random() * max;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.makeRandomFunction = makeRandomFunction;
|
|
22
|
+
//# sourceMappingURL=random.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/random.ts"],"names":[],"mappings":";;;AASA;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,SAAkC;IACnE,MAAM,MAAM,GAAuB,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAE5B,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;QACxB,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;KAC5C;SAAM;QACL,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;KAClC;AACH,CAAC;AAVD,gDAUC"}
|
|
@@ -16,16 +16,3 @@ export declare function roundToPrecision(value: number, precision: number): numb
|
|
|
16
16
|
* @returns Step that contains the value.
|
|
17
17
|
*/
|
|
18
18
|
export declare function roundNumberUpToStep(value: number, step: number): number;
|
|
19
|
-
export declare type RandomNumberFunction = () => number;
|
|
20
|
-
export interface MakeRandomFunction {
|
|
21
|
-
min?: number;
|
|
22
|
-
max: number;
|
|
23
|
-
}
|
|
24
|
-
export declare type MakeRandomFunctionInput = number | MakeRandomFunction;
|
|
25
|
-
/**
|
|
26
|
-
* Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
|
|
27
|
-
*
|
|
28
|
-
* @param maxOrArgs
|
|
29
|
-
* @returns
|
|
30
|
-
*/
|
|
31
|
-
export declare function makeRandomFunction(maxOrArgs: MakeRandomFunctionInput): RandomNumberFunction;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.roundNumberUpToStep = exports.roundToPrecision = void 0;
|
|
4
4
|
// MARK: Number/Math
|
|
5
5
|
/**
|
|
6
6
|
* Rounds the input number to the given precision.
|
|
@@ -26,22 +26,4 @@ function roundNumberUpToStep(value, step) {
|
|
|
26
26
|
return Math.ceil(value / step) * step;
|
|
27
27
|
}
|
|
28
28
|
exports.roundNumberUpToStep = roundNumberUpToStep;
|
|
29
|
-
|
|
30
|
-
* Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
|
|
31
|
-
*
|
|
32
|
-
* @param maxOrArgs
|
|
33
|
-
* @returns
|
|
34
|
-
*/
|
|
35
|
-
function makeRandomFunction(maxOrArgs) {
|
|
36
|
-
const config = (typeof maxOrArgs === 'number') ? { min: 0, max: maxOrArgs } : maxOrArgs;
|
|
37
|
-
const { min, max } = config;
|
|
38
|
-
if (min != null) {
|
|
39
|
-
const range = max - min;
|
|
40
|
-
return () => (Math.random() * range) + min;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
return () => Math.random() * max;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
exports.makeRandomFunction = makeRandomFunction;
|
|
47
|
-
//# sourceMappingURL=number.js.map
|
|
29
|
+
//# sourceMappingURL=round.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/round.ts"],"names":[],"mappings":";;;AACA,oBAAoB;AACpB;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,KAAa,EAAE,SAAiB;IAC/D,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAC5E,CAAC;AAFD,4CAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,KAAa,EAAE,IAAY;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACxC,CAAC;AAFD,kDAEC"}
|
package/src/lib/object/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./object.array"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./object.equal"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./object.map"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./object"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,yDAA+B;AAC/B,uDAA6B;AAC7B,mDAAyB"}
|