@dereekb/util 2.1.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/package.json +13 -5
- package/src/index.d.ts +0 -1
- package/src/index.js +1 -2
- package/src/index.js.map +1 -1
- package/src/lib/array/array.boolean.d.ts +2 -2
- package/src/lib/array/array.boolean.js +1 -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 +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} +33 -4
- package/src/lib/{value.js → value/maybe.js} +35 -5
- 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/test/CHANGELOG.md +9 -0
- package/test/README.md +11 -0
- package/test/package.json +14 -0
- package/test/src/index.d.ts +1 -0
- package/test/src/index.js +5 -0
- package/test/src/index.js.map +1 -0
- package/{src/test → test/src/lib}/index.d.ts +1 -0
- package/test/src/lib/index.js +7 -0
- package/test/src/lib/index.js.map +1 -0
- package/{src/test → test/src/lib}/jest.d.ts +21 -1
- package/test/src/lib/jest.function.d.ts +9 -0
- package/test/src/lib/jest.function.js +14 -0
- package/test/src/lib/jest.function.js.map +1 -0
- package/test/src/lib/jest.js +108 -0
- package/test/src/lib/jest.js.map +1 -0
- package/{src/test → test/src/lib}/jest.wrap.d.ts +0 -0
- package/{src/test → test/src/lib}/jest.wrap.js +5 -5
- package/test/src/lib/jest.wrap.js.map +1 -0
- 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.map +0 -1
- package/src/test/index.js +0 -6
- package/src/test/index.js.map +0 -1
- package/src/test/jest.js +0 -80
- package/src/test/jest.js.map +0 -1
- package/src/test/jest.wrap.js.map +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makePromiseFullRef = void 0;
|
|
4
|
+
let i = 0;
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new promise and returns the full ref for it.
|
|
7
|
+
*/
|
|
8
|
+
function makePromiseFullRef(executor) {
|
|
9
|
+
const ref = {};
|
|
10
|
+
ref.promise = new Promise((resolve, reject) => {
|
|
11
|
+
ref.resolve = resolve;
|
|
12
|
+
ref.reject = reject;
|
|
13
|
+
executor(resolve, reject);
|
|
14
|
+
});
|
|
15
|
+
ref.number = i += 1;
|
|
16
|
+
return ref;
|
|
17
|
+
}
|
|
18
|
+
exports.makePromiseFullRef = makePromiseFullRef;
|
|
19
|
+
//# sourceMappingURL=promise.ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise.ref.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.ref.ts"],"names":[],"mappings":";;;AAWA,IAAI,CAAC,GAAG,CAAC,CAAC;AAEV;;GAEG;AACH,SAAgB,kBAAkB,CAAI,QAA4B;IAChE,MAAM,GAAG,GAAQ,EAAS,CAAC;IAE3B,GAAG,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACtB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QAEpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;IAEpB,OAAO,GAAG,CAAC;AACb,CAAC;AAbD,gDAaC"}
|
package/src/lib/promise/wait.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.waitForMs = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
function waitForMs(ms, value) {
|
|
6
|
-
return
|
|
7
|
-
return new Promise(resolve => setTimeout(resolve, ms
|
|
6
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
7
|
+
return new Promise(resolve => setTimeout(() => resolve(value), ms));
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
exports.waitForMs = waitForMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/wait.ts"],"names":[],"mappings":";;;;AAOA,SAAsB,SAAS,CAAI,EAAU,EAAE,KAAS;;QACtD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/wait.ts"],"names":[],"mappings":";;;;AAOA,SAAsB,SAAS,CAAI,EAAU,EAAE,KAAS;;QACtD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;CAAA;AAFD,8BAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/relation/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/relation/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B"}
|
|
@@ -121,7 +121,7 @@ class ModelRelationUtility {
|
|
|
121
121
|
const modsMap = (0, grouping_1.makeValuesGroupMap)(mods, readType);
|
|
122
122
|
const typesModified = new Set([...inputMap.keys(), ...modsMap.keys()]);
|
|
123
123
|
// Break the collections up into their individual types and process separately.
|
|
124
|
-
const
|
|
124
|
+
const modifiedSubcollections = Array.from(typesModified).map((type) => {
|
|
125
125
|
var _a, _b;
|
|
126
126
|
const values = (_a = inputMap.get(type)) !== null && _a !== void 0 ? _a : [];
|
|
127
127
|
const mods = (_b = modsMap.get(type)) !== null && _b !== void 0 ? _b : [];
|
|
@@ -134,7 +134,7 @@ class ModelRelationUtility {
|
|
|
134
134
|
}
|
|
135
135
|
});
|
|
136
136
|
// Rejoin all changes.
|
|
137
|
-
return
|
|
137
|
+
return modifiedSubcollections.reduce((x, y) => x.concat(y), []);
|
|
138
138
|
}
|
|
139
139
|
static _insertSingleTypeCollection(current, insert, { readKey, merge }) {
|
|
140
140
|
const currentKeys = (0, array_1.arrayToMap)(current, readKey);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./set.allowed"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./set.hashset"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./set.maybe"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./set"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,wDAA8B;AAC9B,sDAA4B;AAC5B,gDAAsB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ArrayOrValue } from './../array/array';
|
|
2
|
+
import { Maybe } from "../value/maybe";
|
|
3
|
+
/**
|
|
4
|
+
* Pair of allowed/disallowed values.
|
|
5
|
+
*/
|
|
6
|
+
export interface AllowedSet<T> {
|
|
7
|
+
/**
|
|
8
|
+
* Values that are allowed. Hits against this set result in an initial true.
|
|
9
|
+
*/
|
|
10
|
+
allowed?: Maybe<Set<T>>;
|
|
11
|
+
/**
|
|
12
|
+
* Values that are disallowed. Hits against this set result in false.
|
|
13
|
+
*/
|
|
14
|
+
disallowed?: Maybe<Set<T>>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Determines whether the input values are "allowed" for the given AllowedSet.
|
|
18
|
+
*
|
|
19
|
+
* @param input
|
|
20
|
+
* @param allowedSet
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare function isAllowed<T>(input: ArrayOrValue<T>, allowedSet: AllowedSet<T>): boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAllowed = void 0;
|
|
4
|
+
const array_1 = require("./../array/array");
|
|
5
|
+
const set_1 = require("./set");
|
|
6
|
+
/**
|
|
7
|
+
* Determines whether the input values are "allowed" for the given AllowedSet.
|
|
8
|
+
*
|
|
9
|
+
* @param input
|
|
10
|
+
* @param allowedSet
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
function isAllowed(input, allowedSet) {
|
|
14
|
+
const { allowed, disallowed } = allowedSet;
|
|
15
|
+
const values = (0, array_1.asArray)(input);
|
|
16
|
+
let isAllowed = false;
|
|
17
|
+
if (allowed) {
|
|
18
|
+
isAllowed = (0, set_1.setContainsAnyValue)(allowed, values);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
isAllowed = true;
|
|
22
|
+
}
|
|
23
|
+
if (isAllowed && disallowed) {
|
|
24
|
+
isAllowed = !(0, set_1.setContainsAnyValue)(disallowed, values);
|
|
25
|
+
}
|
|
26
|
+
return isAllowed;
|
|
27
|
+
}
|
|
28
|
+
exports.isAllowed = isAllowed;
|
|
29
|
+
//# sourceMappingURL=set.allowed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.allowed.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.allowed.ts"],"names":[],"mappings":";;;AAAA,4CAAyD;AAEzD,+BAA4C;AAgB5C;;;;;;GAMG;AACH,SAAgB,SAAS,CAAI,KAAsB,EAAE,UAAyB;IAC5E,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,OAAO,EAAE;QACX,SAAS,GAAG,IAAA,yBAAmB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAClD;SAAM;QACL,SAAS,GAAG,IAAI,CAAC;KAClB;IAED,IAAI,SAAS,IAAI,UAAU,EAAE;QAC3B,SAAS,GAAG,CAAC,IAAA,yBAAmB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KACtD;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAjBD,8BAiBC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Maybe } from '../value/maybe';
|
|
2
|
+
import { IterableOrValue } from '../iterable/iterable';
|
|
3
|
+
export declare function asSet<T>(values: IterableOrValue<T>): Set<T>;
|
|
4
|
+
export declare function addToSet<T>(set: Set<T>, values: Maybe<IterableOrValue<T>>): void;
|
|
5
|
+
export declare function removeFromSet<T>(set: Set<T>, values: Maybe<IterableOrValue<T>>): void;
|
|
6
|
+
export declare function hasDifferentValues<T>(a: Maybe<Iterable<T>>, b: Maybe<Iterable<T>>): boolean;
|
|
7
|
+
export declare function symmetricDifferenceKeys<T>(a: Maybe<Iterable<T>>, b: Maybe<Iterable<T>>): Maybe<T>[];
|
|
8
|
+
export declare function symmetricDifferenceKeysSet<T>(a: Set<Maybe<T>>, b: Set<Maybe<T>>): Maybe<T>[];
|
|
9
|
+
export declare function flattenArrayToSet<T>(array: T[][]): Set<T>;
|
|
10
|
+
export declare function keepValuesFromSet<T>(values: T[], set: Set<T>): T[];
|
|
11
|
+
export declare function excludeValuesFromSet<T>(values: T[], set: Set<T>): T[];
|
|
12
|
+
export declare function filterValuesFromSet<T>(values: T[], set: Set<T>, exclude?: boolean): T[];
|
|
13
|
+
/**
|
|
14
|
+
* Set inclusion comparison type.
|
|
15
|
+
* - all: All values must be included
|
|
16
|
+
* - any: Any value is included
|
|
17
|
+
*/
|
|
18
|
+
export declare type SetIncludesMode = 'all' | 'any';
|
|
19
|
+
/**
|
|
20
|
+
* Contextual function that checks whether or not the input values are included.
|
|
21
|
+
*/
|
|
22
|
+
export declare type SetIncludesFunction<T> = (valuesToFind: Iterable<T>) => boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a SetIncludesFunction using the input valuesSet and optional mode. By default the mode defaults to 'all'.
|
|
25
|
+
*
|
|
26
|
+
* @param valuesSet
|
|
27
|
+
* @param valuesToFind
|
|
28
|
+
* @param mode
|
|
29
|
+
*/
|
|
30
|
+
export declare function setIncludesFunction<T>(valuesSet: Set<T>, mode?: SetIncludesMode): SetIncludesFunction<T>;
|
|
31
|
+
/**
|
|
32
|
+
* Returns true if the input array contains any value from the second array.
|
|
33
|
+
*/
|
|
34
|
+
export declare function containsAnyValue<T>(values: Iterable<T>, valuesToFind: Iterable<T>): boolean;
|
|
35
|
+
export declare function containsAnyValueFromSet<T>(values: Iterable<T>, valuesToFind: Set<T>): boolean;
|
|
36
|
+
export declare function setContainsAnyValue<T>(valuesSet: Set<T>, valuesToFind: Iterable<T>): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if values contains all values in valuesToFind.
|
|
39
|
+
*
|
|
40
|
+
* @param values
|
|
41
|
+
* @param valuesToFind
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
export declare function containsAllValues<T>(values: Iterable<T>, valuesToFind: Iterable<T>): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Returns true if valuesSet contains all values in valuesToFind.
|
|
47
|
+
*
|
|
48
|
+
* @param valuesSet
|
|
49
|
+
* @param valuesToFind
|
|
50
|
+
* @param returnOnEmptyValuesSet
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
export declare function setContainsAllValues<T>(valuesSet: Set<T>, valuesToFind: Iterable<T>): boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PrimativeKey, ReadKeyFunction } from "
|
|
2
|
-
import { Maybe } from "
|
|
1
|
+
import { PrimativeKey, ReadKeyFunction } from "../key";
|
|
2
|
+
import { Maybe } from "../value/maybe";
|
|
3
3
|
export interface HashSetConfig<K extends PrimativeKey, T> {
|
|
4
4
|
readKey: ReadKeyFunction<T, K>;
|
|
5
5
|
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.hashset.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.hashset.ts"],"names":[],"mappings":";;;AAOA;;;;GAIG;AACH,MAAa,OAAO;IAIlB,YAAqB,MAA2B,EAAE,MAAY;QAAzC,WAAM,GAAN,MAAM,CAAqB;QAFxC,SAAI,GAAG,IAAI,GAAG,EAAe,CAAC;QAGpC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,MAAkB;QACvB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,UAAsD,EAAE,OAAa;QAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;CAEF;AAtED,0BAsEC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setContainsAllValues = exports.containsAllValues = exports.setContainsAnyValue = exports.containsAnyValueFromSet = exports.containsAnyValue = exports.setIncludesFunction = exports.filterValuesFromSet = exports.excludeValuesFromSet = exports.keepValuesFromSet = exports.flattenArrayToSet = exports.symmetricDifferenceKeysSet = exports.symmetricDifferenceKeys = exports.hasDifferentValues = exports.removeFromSet = exports.addToSet = exports.asSet = void 0;
|
|
4
|
+
const array_1 = require("../array/array");
|
|
5
|
+
const iterable_1 = require("../iterable/iterable");
|
|
6
|
+
const extra_set_1 = require("extra-set");
|
|
7
|
+
function asSet(values) {
|
|
8
|
+
let set;
|
|
9
|
+
if (typeof values === 'string') {
|
|
10
|
+
set = new Set([values]);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
set = new Set();
|
|
14
|
+
addToSet(set, values);
|
|
15
|
+
}
|
|
16
|
+
return set;
|
|
17
|
+
}
|
|
18
|
+
exports.asSet = asSet;
|
|
19
|
+
function addToSet(set, values) {
|
|
20
|
+
(0, iterable_1.useIterableOrValue)(values, (x) => set.add(x));
|
|
21
|
+
}
|
|
22
|
+
exports.addToSet = addToSet;
|
|
23
|
+
function removeFromSet(set, values) {
|
|
24
|
+
(0, iterable_1.useIterableOrValue)(values, (x) => set.delete(x));
|
|
25
|
+
}
|
|
26
|
+
exports.removeFromSet = removeFromSet;
|
|
27
|
+
function hasDifferentValues(a, b) {
|
|
28
|
+
return (0, extra_set_1.symmetricDifference)(new Set(a), new Set(b)).size > 0;
|
|
29
|
+
}
|
|
30
|
+
exports.hasDifferentValues = hasDifferentValues;
|
|
31
|
+
function symmetricDifferenceKeys(a, b) {
|
|
32
|
+
return symmetricDifferenceKeysSet(new Set(a), new Set(b));
|
|
33
|
+
}
|
|
34
|
+
exports.symmetricDifferenceKeys = symmetricDifferenceKeys;
|
|
35
|
+
function symmetricDifferenceKeysSet(a, b) {
|
|
36
|
+
return Array.from((0, extra_set_1.symmetricDifference)(a, b));
|
|
37
|
+
}
|
|
38
|
+
exports.symmetricDifferenceKeysSet = symmetricDifferenceKeysSet;
|
|
39
|
+
function flattenArrayToSet(array) {
|
|
40
|
+
return new Set((0, array_1.flattenArray)(array));
|
|
41
|
+
}
|
|
42
|
+
exports.flattenArrayToSet = flattenArrayToSet;
|
|
43
|
+
function keepValuesFromSet(values, set) {
|
|
44
|
+
return filterValuesFromSet(values, set, false);
|
|
45
|
+
}
|
|
46
|
+
exports.keepValuesFromSet = keepValuesFromSet;
|
|
47
|
+
function excludeValuesFromSet(values, set) {
|
|
48
|
+
return filterValuesFromSet(values, set, true);
|
|
49
|
+
}
|
|
50
|
+
exports.excludeValuesFromSet = excludeValuesFromSet;
|
|
51
|
+
function filterValuesFromSet(values, set, exclude = false) {
|
|
52
|
+
const filterFn = (exclude) ? ((x) => !set.has(x)) : ((x) => set.has(x));
|
|
53
|
+
return values.filter(filterFn);
|
|
54
|
+
}
|
|
55
|
+
exports.filterValuesFromSet = filterValuesFromSet;
|
|
56
|
+
/**
|
|
57
|
+
* Creates a SetIncludesFunction using the input valuesSet and optional mode. By default the mode defaults to 'all'.
|
|
58
|
+
*
|
|
59
|
+
* @param valuesSet
|
|
60
|
+
* @param valuesToFind
|
|
61
|
+
* @param mode
|
|
62
|
+
*/
|
|
63
|
+
function setIncludesFunction(valuesSet, mode = 'all') {
|
|
64
|
+
let fn;
|
|
65
|
+
if (mode === 'any') {
|
|
66
|
+
fn = setContainsAnyValue;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
fn = setContainsAllValues;
|
|
70
|
+
}
|
|
71
|
+
return (valuesToFind) => fn(valuesSet, valuesToFind);
|
|
72
|
+
}
|
|
73
|
+
exports.setIncludesFunction = setIncludesFunction;
|
|
74
|
+
/**
|
|
75
|
+
* Returns true if the input array contains any value from the second array.
|
|
76
|
+
*/
|
|
77
|
+
function containsAnyValue(values, valuesToFind) {
|
|
78
|
+
const set = new Set(valuesToFind);
|
|
79
|
+
return containsAnyValueFromSet(values, set);
|
|
80
|
+
}
|
|
81
|
+
exports.containsAnyValue = containsAnyValue;
|
|
82
|
+
function containsAnyValueFromSet(values, valuesToFind) {
|
|
83
|
+
return setContainsAnyValue(valuesToFind, values);
|
|
84
|
+
}
|
|
85
|
+
exports.containsAnyValueFromSet = containsAnyValueFromSet;
|
|
86
|
+
function setContainsAnyValue(valuesSet, valuesToFind) {
|
|
87
|
+
return (valuesSet) ? Array.from(valuesToFind).findIndex((x) => valuesSet.has(x)) !== -1 : false;
|
|
88
|
+
}
|
|
89
|
+
exports.setContainsAnyValue = setContainsAnyValue;
|
|
90
|
+
/**
|
|
91
|
+
* Returns true if values contains all values in valuesToFind.
|
|
92
|
+
*
|
|
93
|
+
* @param values
|
|
94
|
+
* @param valuesToFind
|
|
95
|
+
* @returns
|
|
96
|
+
*/
|
|
97
|
+
function containsAllValues(values, valuesToFind) {
|
|
98
|
+
const set = new Set(values);
|
|
99
|
+
return setContainsAllValues(set, valuesToFind);
|
|
100
|
+
}
|
|
101
|
+
exports.containsAllValues = containsAllValues;
|
|
102
|
+
/**
|
|
103
|
+
* Returns true if valuesSet contains all values in valuesToFind.
|
|
104
|
+
*
|
|
105
|
+
* @param valuesSet
|
|
106
|
+
* @param valuesToFind
|
|
107
|
+
* @param returnOnEmptyValuesSet
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
110
|
+
function setContainsAllValues(valuesSet, valuesToFind) {
|
|
111
|
+
return (valuesSet) ? Array.from(valuesToFind).findIndex((x) => !valuesSet.has(x)) == -1 : false;
|
|
112
|
+
}
|
|
113
|
+
exports.setContainsAllValues = setContainsAllValues;
|
|
114
|
+
//# sourceMappingURL=set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ArrayOrValue } from './../array/array';
|
|
2
|
+
import { Maybe } from "../value/maybe";
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Maybe Set with the input.
|
|
5
|
+
*
|
|
6
|
+
* If the input is an array or value, they are returned as a set. Otherwise, returns null/undefined.
|
|
7
|
+
*
|
|
8
|
+
* @param input
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function maybeSet<T>(input: Maybe<ArrayOrValue<T>>): Maybe<Set<T>>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.maybeSet = void 0;
|
|
4
|
+
const array_1 = require("./../array/array");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a Maybe Set with the input.
|
|
7
|
+
*
|
|
8
|
+
* If the input is an array or value, they are returned as a set. Otherwise, returns null/undefined.
|
|
9
|
+
*
|
|
10
|
+
* @param input
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
function maybeSet(input) {
|
|
14
|
+
if (input != null) {
|
|
15
|
+
return new Set((0, array_1.asArray)(input));
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return input;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.maybeSet = maybeSet;
|
|
22
|
+
//# sourceMappingURL=set.maybe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.maybe.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.maybe.ts"],"names":[],"mappings":";;;AAAA,4CAAyD;AAGzD;;;;;;;GAOG;AACH,SAAgB,QAAQ,CAAI,KAA6B;IACvD,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,IAAI,GAAG,CAAC,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC,CAAC;KAChC;SAAM;QACL,OAAO,KAAiB,CAAC;KAC1B;AACH,CAAC;AAND,4BAMC"}
|
package/src/lib/sort.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
ASCENDING = "asc",
|
|
3
|
-
DESCENDING = "desc"
|
|
4
|
-
}
|
|
1
|
+
export declare type SortingOrder = 'desc' | 'asc';
|
|
5
2
|
export declare const SORT_VALUE_LESS_THAN: SortComparisonNumber;
|
|
6
3
|
export declare const SORT_VALUE_GREATER_THAN: SortComparisonNumber;
|
|
7
4
|
export declare const SORT_VALUE_EQUAL: SortComparisonNumber;
|
package/src/lib/sort.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compareFnOrder = exports.reverseCompareFn = exports.SORT_VALUE_EQUAL = exports.SORT_VALUE_GREATER_THAN = exports.SORT_VALUE_LESS_THAN =
|
|
4
|
-
var SortingOrder;
|
|
5
|
-
(function (SortingOrder) {
|
|
6
|
-
SortingOrder["ASCENDING"] = "asc";
|
|
7
|
-
SortingOrder["DESCENDING"] = "desc";
|
|
8
|
-
})(SortingOrder = exports.SortingOrder || (exports.SortingOrder = {}));
|
|
3
|
+
exports.compareFnOrder = exports.reverseCompareFn = exports.SORT_VALUE_EQUAL = exports.SORT_VALUE_GREATER_THAN = exports.SORT_VALUE_LESS_THAN = void 0;
|
|
9
4
|
exports.SORT_VALUE_LESS_THAN = -1;
|
|
10
5
|
exports.SORT_VALUE_GREATER_THAN = 1;
|
|
11
6
|
exports.SORT_VALUE_EQUAL = 0;
|
|
@@ -18,8 +13,8 @@ exports.reverseCompareFn = reverseCompareFn;
|
|
|
18
13
|
*
|
|
19
14
|
* The input comparison function must be in ascending order.
|
|
20
15
|
*/
|
|
21
|
-
function compareFnOrder(ascendingCompareFn, order =
|
|
22
|
-
return (order ===
|
|
16
|
+
function compareFnOrder(ascendingCompareFn, order = 'asc') {
|
|
17
|
+
return (order === 'asc') ? ascendingCompareFn : reverseCompareFn(ascendingCompareFn);
|
|
23
18
|
}
|
|
24
19
|
exports.compareFnOrder = compareFnOrder;
|
|
25
20
|
//# sourceMappingURL=sort.js.map
|
package/src/lib/sort.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/sort.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/sort.ts"],"names":[],"mappings":";;;AAGa,QAAA,oBAAoB,GAAyB,CAAC,CAAC,CAAC;AAChD,QAAA,uBAAuB,GAAyB,CAAC,CAAC;AAClD,QAAA,gBAAgB,GAAyB,CAAC,CAAC;AAsCxD,SAAgB,gBAAgB,CAAI,SAAiC;IACnE,OAAO,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAFD,4CAEC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAI,kBAAmD,EAAE,QAAsB,KAAK;IAChH,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AACvF,CAAC;AAFD,wCAEC"}
|
package/src/lib/storage/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./storage"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./storage.error"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./storage.memory"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./storage.object"), exports);
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/storage/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/storage/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,0DAAgC;AAChC,2DAAiC;AACjC,2DAAiC"}
|
package/src/lib/string.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MapStringFn } from "./map";
|
|
2
|
-
import { Maybe } from "./value";
|
|
1
|
+
import { MapStringFn } from "./map/map";
|
|
2
|
+
import { Maybe } from "./value/maybe";
|
|
3
3
|
/**
|
|
4
4
|
* Represents a string that is made up of comma-separated values.
|
|
5
5
|
*
|
|
@@ -18,3 +18,10 @@ export declare function splitCommaSeparatedStringToSet(input: Maybe<CommaSeparat
|
|
|
18
18
|
* Undefined is returned if a null/undefined value is input.
|
|
19
19
|
*/
|
|
20
20
|
export declare function addPlusPrefixToNumber(value?: Maybe<number>, prefix?: string): string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Capitalizes the first letter of the input.
|
|
23
|
+
*
|
|
24
|
+
* @param value
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export declare function capitalizeFirstLetter(value: string): string;
|
package/src/lib/string.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addPlusPrefixToNumber = exports.splitCommaSeparatedStringToSet = exports.splitCommaSeparatedString = exports.caseInsensitiveString = void 0;
|
|
3
|
+
exports.capitalizeFirstLetter = exports.addPlusPrefixToNumber = exports.splitCommaSeparatedStringToSet = exports.splitCommaSeparatedString = exports.caseInsensitiveString = void 0;
|
|
4
4
|
function caseInsensitiveString(input) {
|
|
5
5
|
return input === null || input === void 0 ? void 0 : input.toLocaleLowerCase();
|
|
6
6
|
}
|
|
@@ -28,4 +28,14 @@ function addPlusPrefixToNumber(value, prefix = '+') {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
exports.addPlusPrefixToNumber = addPlusPrefixToNumber;
|
|
31
|
+
/**
|
|
32
|
+
* Capitalizes the first letter of the input.
|
|
33
|
+
*
|
|
34
|
+
* @param value
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
function capitalizeFirstLetter(value) {
|
|
38
|
+
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
39
|
+
}
|
|
40
|
+
exports.capitalizeFirstLetter = capitalizeFirstLetter;
|
|
31
41
|
//# sourceMappingURL=string.js.map
|
package/src/lib/string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/string.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/string.ts"],"names":[],"mappings":";;;AAcA,SAAgB,qBAAqB,CAAC,KAAU;IAC9C,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,iBAAiB,EAAE,CAAC;AACpC,CAAC;AAFD,sDAEC;AAID,SAAgB,yBAAyB,CAAU,KAA8B,EAAE,QAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAQ;IACxH,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAHD,8DAGC;AAED,SAAgB,8BAA8B,CAAC,KAAkC;IAC/E,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAFD,wEAEC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,KAAqB,EAAE,MAAM,GAAG,GAAG;IACvE,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;KACvD;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAND,sDAMC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAFD,sDAEC"}
|
package/src/lib/tree/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./tree"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./tree.expand"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./tree.flatten"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./tree.array"), exports);
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/tree/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/tree/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,wDAA8B;AAC9B,yDAA+B;AAC/B,uDAA6B"}
|
package/src/lib/type.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Class typing, restricted to types that have a constructor via the new keyword.
|
|
3
|
+
*/
|
|
4
|
+
export declare type ClassType<T = any> = {
|
|
2
5
|
new (...args: any[]): T;
|
|
3
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Similar to ClassType, but allows for abstract classes.
|
|
9
|
+
*/
|
|
10
|
+
export declare type ClassLikeType<T = any> = abstract new (...args: any[]) => T;
|
|
4
11
|
/**
|
|
5
12
|
* Special type used to defined other type definitions that state the defined type has every key of one type, but each key has a single/new value type.
|
|
6
13
|
*/
|
|
@@ -8,3 +15,12 @@ export declare type KeyValueTransformMap<T, V, K extends keyof T = keyof T> = {
|
|
|
8
15
|
[k in K]: V;
|
|
9
16
|
};
|
|
10
17
|
export declare type BooleanKeyValueTransformMap<T> = KeyValueTransformMap<T, boolean>;
|
|
18
|
+
export declare type RemoveIndex<T> = {
|
|
19
|
+
[K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Custom typing used to only retain known keys on types that have a [key: string] in their type.
|
|
23
|
+
*
|
|
24
|
+
* https://stackoverflow.com/questions/51954558/how-can-i-remove-a-wider-type-from-a-union-type-without-removing-its-subtypes-in/51955852#51955852
|
|
25
|
+
*/
|
|
26
|
+
export declare type KnownKeys<T> = keyof RemoveIndex<T>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { IterableOrValue } from './../iterable/iterable';
|
|
2
|
+
/**
|
|
3
|
+
* Function used for equivalence comparisons on an object.
|
|
4
|
+
*/
|
|
5
|
+
export declare type IsEqualFunction<T = any> = (a: T, b: T) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Used to check if the input object is considered equal to the current context.
|
|
8
|
+
*/
|
|
9
|
+
export declare type IsEqualContext<T = any> = (x: T) => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Similar to IsEqualContext, but supports an array of objects.
|
|
12
|
+
*
|
|
13
|
+
* Used to check if the input object or array of objects are considered equal to the current context.
|
|
14
|
+
*/
|
|
15
|
+
export declare type AreEqualContext<T = any> = (x: IterableOrValue<T>) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Creates an IsEqualContext
|
|
18
|
+
*
|
|
19
|
+
* @param contextValue
|
|
20
|
+
* @param fn
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare function isEqualContext<T>(contextValue: T, fn: IsEqualFunction<T>): IsEqualContext<T>;
|
|
24
|
+
/**
|
|
25
|
+
* Creates an AreEqualContext
|
|
26
|
+
*
|
|
27
|
+
* @param contextValue
|
|
28
|
+
* @param fn
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export declare function areEqualContext<T>(contextValue: T, fn: IsEqualFunction<T>): AreEqualContext<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Returns true if all input values are equal.
|
|
34
|
+
*
|
|
35
|
+
* Arrays that are empty or have one value will return true by default.
|
|
36
|
+
*
|
|
37
|
+
* @param values
|
|
38
|
+
* @param fn
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
export declare function allObjectsAreEqual<T>(values: IterableOrValue<T>, fn: IsEqualFunction<T>): boolean;
|