@dereekb/util 7.0.1 → 7.3.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 +28 -0
- package/package.json +1 -1
- package/src/lib/array/array.boolean.d.ts +1 -1
- package/src/lib/array/array.d.ts +1 -1
- package/src/lib/array/array.index.d.ts +1 -1
- package/src/lib/array/array.js +1 -1
- package/src/lib/array/array.js.map +1 -1
- package/src/lib/array/array.limit.d.ts +1 -1
- package/src/lib/array/array.map.d.ts +1 -1
- package/src/lib/array/array.string.d.ts +30 -0
- package/src/lib/array/array.string.js +28 -1
- package/src/lib/array/array.string.js.map +1 -1
- package/src/lib/array/array.unique.d.ts +13 -1
- package/src/lib/array/array.unique.js +12 -1
- package/src/lib/array/array.unique.js.map +1 -1
- package/src/lib/array/array.value.d.ts +14 -2
- package/src/lib/array/array.value.js +24 -6
- package/src/lib/array/array.value.js.map +1 -1
- package/src/lib/auth/auth.role.claims.d.ts +1 -1
- package/src/lib/auth/auth.role.claims.js +13 -10
- package/src/lib/auth/auth.role.claims.js.map +1 -1
- package/src/lib/auth/auth.role.d.ts +1 -1
- package/src/lib/date/date.d.ts +1 -1
- package/src/lib/date/date.time.d.ts +1 -1
- package/src/lib/error/error.d.ts +1 -1
- package/src/lib/error/error.server.d.ts +1 -1
- package/src/lib/filter/filter.d.ts +3 -0
- package/src/lib/filter/filter.js.map +1 -1
- package/src/lib/grouping.d.ts +1 -1
- package/src/lib/iterable/iterable.d.ts +8 -1
- package/src/lib/iterable/iterable.js +14 -1
- package/src/lib/iterable/iterable.js.map +1 -1
- package/src/lib/key.d.ts +1 -1
- package/src/lib/misc/host.d.ts +1 -1
- package/src/lib/model/index.d.ts +1 -0
- package/src/lib/model/index.js +1 -0
- package/src/lib/model/index.js.map +1 -1
- package/src/lib/model/model.conversion.d.ts +11 -5
- package/src/lib/model/model.conversion.js +7 -6
- package/src/lib/model/model.conversion.js.map +1 -1
- package/src/lib/model/model.copy.d.ts +1 -1
- package/src/lib/model/model.d.ts +1 -1
- package/src/lib/model/model.modify.d.ts +47 -0
- package/src/lib/model/model.modify.js +51 -0
- package/src/lib/model/model.modify.js.map +1 -0
- package/src/lib/object/index.d.ts +3 -0
- package/src/lib/object/index.js +3 -0
- package/src/lib/object/index.js.map +1 -1
- package/src/lib/object/object.d.ts +4 -112
- package/src/lib/object/object.empty.d.ts +7 -0
- package/src/lib/object/object.empty.js +27 -0
- package/src/lib/object/object.empty.js.map +1 -0
- package/src/lib/object/object.filter.pojo.d.ts +154 -0
- package/src/lib/object/object.filter.pojo.js +235 -0
- package/src/lib/object/object.filter.pojo.js.map +1 -0
- package/src/lib/object/object.filter.tuple.d.ts +64 -0
- package/src/lib/object/object.filter.tuple.js +120 -0
- package/src/lib/object/object.filter.tuple.js.map +1 -0
- package/src/lib/object/object.js +6 -224
- package/src/lib/object/object.js.map +1 -1
- package/src/lib/object/object.map.d.ts +23 -1
- package/src/lib/object/object.map.js +26 -4
- package/src/lib/object/object.map.js.map +1 -1
- package/src/lib/page/page.d.ts +1 -1
- package/src/lib/promise/promise.d.ts +1 -1
- package/src/lib/promise/promise.loop.d.ts +1 -1
- package/src/lib/relation/relation.d.ts +8 -7
- package/src/lib/relation/relation.js +2 -1
- package/src/lib/relation/relation.js.map +1 -1
- package/src/lib/service/typed.service.js +2 -2
- package/src/lib/service/typed.service.js.map +1 -1
- package/src/lib/set/set.allowed.d.ts +1 -1
- package/src/lib/set/set.d.ts +1 -1
- package/src/lib/set/set.hashset.d.ts +1 -1
- package/src/lib/set/set.maybe.d.ts +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/storage/storage.object.js +4 -3
- package/src/lib/storage/storage.object.js.map +1 -1
- package/src/lib/string.d.ts +1 -1
- package/src/lib/tree/tree.expand.d.ts +1 -1
- package/src/lib/value/index.d.ts +1 -0
- package/src/lib/value/index.js +1 -0
- package/src/lib/value/index.js.map +1 -1
- package/src/lib/value/map.d.ts +5 -1
- package/src/lib/value/map.js +11 -1
- package/src/lib/value/map.js.map +1 -1
- package/src/lib/value/maybe.d.ts +16 -41
- package/src/lib/value/maybe.js +57 -4
- package/src/lib/value/maybe.js.map +1 -1
- package/src/lib/value/maybe.type.d.ts +19 -0
- package/src/lib/value/maybe.type.js +3 -0
- package/src/lib/value/maybe.type.js.map +1 -0
- package/src/lib/value/modifier.d.ts +23 -6
- package/src/lib/value/modifier.js +43 -7
- package/src/lib/value/modifier.js.map +1 -1
- package/test/CHANGELOG.md +12 -0
- package/test/package.json +2 -2
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.modelFieldMapFunction = exports.modelFieldMapFunctions = exports.modelFieldConversions = exports.makeModelConversionFieldValuesFunction = exports.makeModelMapFunctions = void 0;
|
|
6
6
|
const getter_1 = require("../getter/getter");
|
|
7
|
-
const
|
|
7
|
+
const object_filter_pojo_1 = require("../object/object.filter.pojo");
|
|
8
|
+
const object_filter_tuple_1 = require("../object/object.filter.tuple");
|
|
8
9
|
const maybe_1 = require("../value/maybe");
|
|
9
|
-
const
|
|
10
|
+
const object_1 = require("../object");
|
|
10
11
|
function makeModelMapFunctions(fields) {
|
|
11
|
-
const keys = (0,
|
|
12
|
+
const keys = (0, object_filter_tuple_1.filterKeyValueTuples)(fields);
|
|
12
13
|
const conversionsByKey = keys.map(([key, field]) => [key, field]);
|
|
13
14
|
const fromConversions = conversionsByKey.map(([key, configs]) => [key, configs.from]);
|
|
14
15
|
const toConversions = conversionsByKey.map(([key, configs]) => [key, configs.to]);
|
|
@@ -27,9 +28,9 @@ function makeModelConversionFieldValuesFunction(fields) {
|
|
|
27
28
|
let targetFields = fields;
|
|
28
29
|
// if options are provided, filter down.
|
|
29
30
|
if (options) {
|
|
30
|
-
const fieldsToMap = new Set((0,
|
|
31
|
+
const fieldsToMap = new Set((0, object_filter_pojo_1.findPOJOKeys)(input, {
|
|
31
32
|
keysFilter: options.fields,
|
|
32
|
-
valueFilter: options.definedOnly === false ?
|
|
33
|
+
valueFilter: options.definedOnly === false ? object_filter_tuple_1.KeyValueTypleValueFilter.NONE : object_filter_tuple_1.KeyValueTypleValueFilter.UNDEFINED
|
|
33
34
|
}));
|
|
34
35
|
targetFields = fields.filter((x) => fieldsToMap.has(x[0]));
|
|
35
36
|
}
|
|
@@ -40,7 +41,7 @@ function makeModelConversionFieldValuesFunction(fields) {
|
|
|
40
41
|
}
|
|
41
42
|
exports.makeModelConversionFieldValuesFunction = makeModelConversionFieldValuesFunction;
|
|
42
43
|
function modelFieldConversions(config) {
|
|
43
|
-
return (0,
|
|
44
|
+
return (0, object_1.mapObjectMap)(config, (x) => modelFieldMapFunctions(x));
|
|
44
45
|
}
|
|
45
46
|
exports.modelFieldConversions = modelFieldConversions;
|
|
46
47
|
function modelFieldMapFunctions(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.conversion.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.conversion.ts"],"names":[],"mappings":";AAAA,mDAAmD;AACnD,kJAAkJ;;;AAElJ,6CAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"model.conversion.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.conversion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Maybe } from '../value/maybe';
|
|
1
|
+
import { Maybe } from '../value/maybe.type';
|
|
2
2
|
export declare type CopySelectModelFieldsConfig<T = unknown> = Partial<CopyModelFieldsConfig<T>>;
|
|
3
3
|
export declare type CopyModelFieldsConfig<T = unknown> = {
|
|
4
4
|
[K in keyof T]: Maybe<CopyModelFieldConfig>;
|
package/src/lib/model/model.d.ts
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { MaybeMap } from '@dereekb/util';
|
|
2
|
+
import { ArrayOrValue } from '../array/array';
|
|
3
|
+
import { Maybe } from '../value/maybe.type';
|
|
4
|
+
import { ModifierFunction } from '../value/modifier';
|
|
5
|
+
import { ModelMapFunction, ModelMapFunctions } from './model.conversion';
|
|
6
|
+
export declare type ModelInputDataModifier<D extends object> = {
|
|
7
|
+
modifyData: ModifierFunction<D>;
|
|
8
|
+
};
|
|
9
|
+
export declare type ModelInputModelModifier<V extends object> = {
|
|
10
|
+
modifyModel: ModifierFunction<V>;
|
|
11
|
+
};
|
|
12
|
+
export declare type ModelModifier<V extends object, D extends object> = ModelInputModelModifier<V> & ModelInputDataModifier<D>;
|
|
13
|
+
export declare type PartialModelModifier<V extends object, D extends object> = Partial<MaybeMap<ModelModifier<V, D>>>;
|
|
14
|
+
export declare function maybeMergeModelModifiers<V extends object, D extends object>(input: ArrayOrValue<PartialModelModifier<V, D>>): PartialModelModifier<V, D>;
|
|
15
|
+
export interface ModifyModelMapFunctionsConfig<V extends object, D extends object> {
|
|
16
|
+
readonly mapFunctions: ModelMapFunctions<V, D>;
|
|
17
|
+
/**
|
|
18
|
+
* Partial model modifiers to use.
|
|
19
|
+
*/
|
|
20
|
+
readonly modifiers: ArrayOrValue<PartialModelModifier<V, D>>;
|
|
21
|
+
/**
|
|
22
|
+
* Provides a default value for both copyModel and copyData.
|
|
23
|
+
*/
|
|
24
|
+
readonly copy?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether or not to copy the input model before applying modifiers.
|
|
27
|
+
*
|
|
28
|
+
* Defaults to true.
|
|
29
|
+
*/
|
|
30
|
+
readonly copyModel?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Whether or not to copy the input data before applying modifiers.
|
|
33
|
+
*
|
|
34
|
+
* Defaults to true.
|
|
35
|
+
*/
|
|
36
|
+
readonly copyData?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare function modifyModelMapFunctions<V extends object, D extends object>(config: ModifyModelMapFunctionsConfig<V, D>): ModelMapFunctions<V, D>;
|
|
39
|
+
/**
|
|
40
|
+
* Merges a ModifierFunction with a ModelMapFunction
|
|
41
|
+
*
|
|
42
|
+
* @param mapFn
|
|
43
|
+
* @param modifyModel
|
|
44
|
+
* @param copy
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
export declare function modifyModelMapFunction<I extends object, O extends object>(mapFn: ModelMapFunction<I, O>, modifyModel: Maybe<ModifierFunction<I>>, copy?: boolean): ModelMapFunction<I, O>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.modifyModelMapFunction = exports.modifyModelMapFunctions = exports.maybeMergeModelModifiers = void 0;
|
|
4
|
+
const array_1 = require("../array/array");
|
|
5
|
+
const array_value_1 = require("../array/array.value");
|
|
6
|
+
const modifier_1 = require("../value/modifier");
|
|
7
|
+
function maybeMergeModelModifiers(input) {
|
|
8
|
+
const modifiers = (0, array_1.asArray)(input);
|
|
9
|
+
const allModifyData = (0, array_value_1.filterMaybeValues)(modifiers.map((x) => x.modifyData));
|
|
10
|
+
const allModifyModel = (0, array_value_1.filterMaybeValues)(modifiers.map((x) => x.modifyModel));
|
|
11
|
+
const modifyData = (0, modifier_1.maybeMergeModifiers)(allModifyData);
|
|
12
|
+
const modifyModel = (0, modifier_1.maybeMergeModifiers)(allModifyModel);
|
|
13
|
+
return {
|
|
14
|
+
modifyData,
|
|
15
|
+
modifyModel
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.maybeMergeModelModifiers = maybeMergeModelModifiers;
|
|
19
|
+
function modifyModelMapFunctions(config) {
|
|
20
|
+
const { copy, copyModel = copy, copyData = copy, mapFunctions, modifiers } = config;
|
|
21
|
+
const { from, to } = mapFunctions;
|
|
22
|
+
const { modifyData, modifyModel } = maybeMergeModelModifiers(modifiers);
|
|
23
|
+
const modifyFrom = modifyModelMapFunction(from, modifyData, copyData);
|
|
24
|
+
const modifyTo = modifyModelMapFunction(to, modifyModel, copyModel);
|
|
25
|
+
return {
|
|
26
|
+
from: modifyFrom,
|
|
27
|
+
to: modifyTo
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.modifyModelMapFunctions = modifyModelMapFunctions;
|
|
31
|
+
/**
|
|
32
|
+
* Merges a ModifierFunction with a ModelMapFunction
|
|
33
|
+
*
|
|
34
|
+
* @param mapFn
|
|
35
|
+
* @param modifyModel
|
|
36
|
+
* @param copy
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
function modifyModelMapFunction(mapFn, modifyModel, copy = true) {
|
|
40
|
+
return modifyModel
|
|
41
|
+
? (input, target, options) => {
|
|
42
|
+
const inputToMap = copy && input != null ? Object.assign({}, input) : input;
|
|
43
|
+
if (inputToMap != null) {
|
|
44
|
+
modifyModel(inputToMap);
|
|
45
|
+
}
|
|
46
|
+
return mapFn(inputToMap, target, options);
|
|
47
|
+
}
|
|
48
|
+
: mapFn;
|
|
49
|
+
}
|
|
50
|
+
exports.modifyModelMapFunction = modifyModelMapFunction;
|
|
51
|
+
//# sourceMappingURL=model.modify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.modify.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.modify.ts"],"names":[],"mappings":";;;AACA,0CAAuD;AACvD,sDAAyD;AAEzD,gDAA0E;AAc1E,SAAgB,wBAAwB,CAAqC,KAA+C;IAC1H,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,IAAA,+BAAiB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,IAAA,+BAAiB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,IAAA,8BAAmB,EAAC,aAAa,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,IAAA,8BAAmB,EAAC,cAAc,CAAC,CAAC;IAExD,OAAO;QACL,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC;AAXD,4DAWC;AA0BD,SAAgB,uBAAuB,CAAqC,MAA2C;IACrH,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpF,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC;IAClC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEpE,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,QAAQ;KACb,CAAC;AACJ,CAAC;AAZD,0DAYC;AAED;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAAqC,KAA6B,EAAE,WAAuC,EAAE,IAAI,GAAG,IAAI;IAC5J,OAAO,WAAW;QAChB,CAAC,CAAC,CAAC,KAAe,EAAE,MAA0B,EAAE,OAA0C,EAAE,EAAE;YAC1F,MAAM,UAAU,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,mBAAM,KAAK,EAAG,CAAC,CAAC,KAAK,CAAC;YAEhE,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,WAAW,CAAC,UAAU,CAAC,CAAC;aACzB;YAED,OAAO,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACH,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAZD,wDAYC"}
|
package/src/lib/object/index.js
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./object.array"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./object.empty"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./object.equal"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./object.map"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./object"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./object.filter.tuple"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./object.filter.pojo"), exports);
|
|
8
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
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"}
|
|
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,yDAA+B;AAC/B,uDAA6B;AAC7B,mDAAyB;AACzB,gEAAsC;AACtC,+DAAqC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { FieldOfType } from '../key';
|
|
2
|
-
import { Maybe } from '../value/maybe';
|
|
3
|
-
import { FilterFunction } from '../filter/filter';
|
|
4
2
|
export declare type EmptyObject = Record<string, never>;
|
|
5
3
|
export declare function objectHasNoKeys(obj: object): obj is EmptyObject;
|
|
6
4
|
export declare function objectHasKey<T, K extends keyof T = keyof T>(obj: T, key: K): boolean;
|
|
@@ -11,117 +9,11 @@ export declare function applyToMultipleFields<T extends object, X = unknown>(val
|
|
|
11
9
|
export declare function mapToObject<T, K extends PropertyKey>(map: Map<K, T>): {
|
|
12
10
|
[key: PropertyKey]: T;
|
|
13
11
|
};
|
|
14
|
-
export
|
|
15
|
-
copy?: boolean;
|
|
16
|
-
filter?: Omit<KeyValueTupleFilter<T>, 'inverse'>;
|
|
17
|
-
}
|
|
12
|
+
export declare type CopyObjectFunction<T> = (input: T) => T;
|
|
18
13
|
/**
|
|
19
|
-
*
|
|
14
|
+
* Creates a shallow copy of an object using the spread operator.
|
|
20
15
|
*
|
|
21
|
-
* @param
|
|
16
|
+
* @param input
|
|
22
17
|
* @returns
|
|
23
18
|
*/
|
|
24
|
-
export declare function
|
|
25
|
-
/**
|
|
26
|
-
* Returns a copy of the input object with all undefined values filtered from it.
|
|
27
|
-
*
|
|
28
|
-
* @param obj
|
|
29
|
-
* @returns
|
|
30
|
-
*/
|
|
31
|
-
export declare function filterUndefinedValues<T extends object = object>(obj: T, filterNull?: boolean): T;
|
|
32
|
-
/**
|
|
33
|
-
* Returns all keys that are not associated with an undefined value.
|
|
34
|
-
*
|
|
35
|
-
* @param obj
|
|
36
|
-
* @returns
|
|
37
|
-
*/
|
|
38
|
-
export declare function allNonUndefinedKeys<T extends object = object>(obj: T): (keyof T)[];
|
|
39
|
-
export declare function allMaybeSoKeys<T extends object = object>(obj: T): (keyof T)[];
|
|
40
|
-
/**
|
|
41
|
-
* Finds keys from the POJO that meet the filter.
|
|
42
|
-
*
|
|
43
|
-
* @param obj
|
|
44
|
-
* @param filter
|
|
45
|
-
* @returns
|
|
46
|
-
*/
|
|
47
|
-
export declare function findPOJOKeys<T extends object = object>(obj: T, filter: FilterKeyValueTuplesInput<T>): (keyof T)[];
|
|
48
|
-
/**
|
|
49
|
-
* Finds and counts the number of keys from the POJO that meet the filter.
|
|
50
|
-
*
|
|
51
|
-
* @param obj
|
|
52
|
-
* @param filter
|
|
53
|
-
* @returns
|
|
54
|
-
*/
|
|
55
|
-
export declare function countPOJOKeys<T extends object = object>(obj: T, filter?: FilterKeyValueTuplesInput<T>): number;
|
|
56
|
-
/**
|
|
57
|
-
* Removes values, per the the filter config, from the input object.
|
|
58
|
-
*
|
|
59
|
-
* @param obj POJO to remove undefined values from.
|
|
60
|
-
* @param copy Whether or not to return a copy of the input object. Default is true.
|
|
61
|
-
*/
|
|
62
|
-
export declare function filterFromPOJO<T extends object = object>(obj: T, { copy, filter }?: FilterFromPOJO<T>): T;
|
|
63
|
-
export declare function assignValuesToPOJO<T extends object = object>(target: T, obj: T, filter?: FilterKeyValueTuplesInput<T>): T;
|
|
64
|
-
/**
|
|
65
|
-
* Reads all values from the pojo based on the filter and puts them into an array.
|
|
66
|
-
*
|
|
67
|
-
* @param target
|
|
68
|
-
* @param filter
|
|
69
|
-
* @returns
|
|
70
|
-
*/
|
|
71
|
-
export declare function valuesFromPOJO<O = unknown, I extends object = object>(target: I, filter?: FilterKeyValueTuplesInput<I>): O[];
|
|
72
|
-
export declare type KeyValueTuple<T extends object = object, K extends keyof T = keyof T> = [K, T[K]];
|
|
73
|
-
export declare function allKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T): KeyValueTuple<T, K>[];
|
|
74
|
-
export declare enum KeyValueTypleValueFilter {
|
|
75
|
-
/**
|
|
76
|
-
* No filter
|
|
77
|
-
*/
|
|
78
|
-
NONE = 0,
|
|
79
|
-
/**
|
|
80
|
-
* Only undefined values.
|
|
81
|
-
*/
|
|
82
|
-
UNDEFINED = 1,
|
|
83
|
-
/**
|
|
84
|
-
* All values that are null or undefined.
|
|
85
|
-
*/
|
|
86
|
-
NULL = 2,
|
|
87
|
-
/**
|
|
88
|
-
* All values that are falsy.
|
|
89
|
-
*/
|
|
90
|
-
FALSY = 3
|
|
91
|
-
}
|
|
92
|
-
export declare type ForEachKeyValueFunction<T extends object = object, K extends keyof T = keyof T> = (tuple: KeyValueTuple<T, K>, index: number) => void;
|
|
93
|
-
export interface ForEachKeyValue<T extends object = object, K extends keyof T = keyof T> {
|
|
94
|
-
filter?: FilterKeyValueTuplesInput<T, K>;
|
|
95
|
-
forEach: ForEachKeyValueFunction<T, K>;
|
|
96
|
-
}
|
|
97
|
-
export declare function forEachKeyValue<T extends object = object, K extends keyof T = keyof T>(obj: T, { forEach, filter }: ForEachKeyValue<T, K>): void;
|
|
98
|
-
export declare function filterKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T, filter?: FilterKeyValueTuplesInput<T, K>): KeyValueTuple<T, K>[];
|
|
99
|
-
export interface KeyValueTupleFilter<T extends object = object, K extends keyof T = keyof T> {
|
|
100
|
-
valueFilter?: KeyValueTypleValueFilter;
|
|
101
|
-
invertFilter?: boolean;
|
|
102
|
-
keysFilter?: K[];
|
|
103
|
-
}
|
|
104
|
-
export declare type FilterKeyValueTuplesInput<T extends object = object, K extends keyof T = keyof T> = KeyValueTypleValueFilter | KeyValueTupleFilter<T, K>;
|
|
105
|
-
export declare type FilterKeyValueTupleFunction<T extends object = object, K extends keyof T = keyof T> = FilterFunction<KeyValueTuple<T, K>>;
|
|
106
|
-
export declare function filterKeyValueTupleFunction<T extends object = object, K extends keyof T = keyof T>(input: FilterKeyValueTuplesInput<T, K>): FilterKeyValueTupleFunction<T, K>;
|
|
107
|
-
/**
|
|
108
|
-
* Recursively function that returns true if the input is not an object or if every key on the object is empty.
|
|
109
|
-
*
|
|
110
|
-
* @param obj
|
|
111
|
-
*/
|
|
112
|
-
export declare function objectIsEmpty<T extends object>(obj: Maybe<T>): boolean;
|
|
113
|
-
/**
|
|
114
|
-
* Merges all input objects into one. The order of overrides is kept, so the right-most item in the array will have priority over all objects before it.
|
|
115
|
-
*
|
|
116
|
-
* @param objects
|
|
117
|
-
*/
|
|
118
|
-
export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>>[], filter?: KeyValueTupleFilter<T>): Partial<T>;
|
|
119
|
-
/**
|
|
120
|
-
* Assigns all undefined valeus from one or more objects into the target object.
|
|
121
|
-
*
|
|
122
|
-
* @param object
|
|
123
|
-
*/
|
|
124
|
-
export declare function overrideInObject<T extends object>(target: Partial<T>, { from, filter }: {
|
|
125
|
-
from: Partial<T>[];
|
|
126
|
-
filter?: KeyValueTupleFilter<T>;
|
|
127
|
-
}): Partial<T>;
|
|
19
|
+
export declare function copyObject<T extends object>(input: T): T;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Maybe } from '../value/maybe.type';
|
|
2
|
+
/**
|
|
3
|
+
* Recursively function that returns true if the input is not an object or if every key on the object is empty.
|
|
4
|
+
*
|
|
5
|
+
* @param obj
|
|
6
|
+
*/
|
|
7
|
+
export declare function objectIsEmpty<T extends object>(obj: Maybe<T>): boolean;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.objectIsEmpty = void 0;
|
|
4
|
+
const maybe_1 = require("../value/maybe");
|
|
5
|
+
/**
|
|
6
|
+
* Recursively function that returns true if the input is not an object or if every key on the object is empty.
|
|
7
|
+
*
|
|
8
|
+
* @param obj
|
|
9
|
+
*/
|
|
10
|
+
function objectIsEmpty(obj) {
|
|
11
|
+
if (obj != null && typeof obj === 'object') {
|
|
12
|
+
const keys = Object.keys(obj);
|
|
13
|
+
if (keys.length > 0) {
|
|
14
|
+
for (let i = 0; i < keys.length; i += 1) {
|
|
15
|
+
const key = keys[i];
|
|
16
|
+
const value = obj[key];
|
|
17
|
+
const isEmpty = typeof obj === 'object' ? objectIsEmpty(value) : !(0, maybe_1.hasValueOrNotEmpty)(value);
|
|
18
|
+
if (!isEmpty) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
exports.objectIsEmpty = objectIsEmpty;
|
|
27
|
+
//# sourceMappingURL=object.empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.empty.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.empty.ts"],"names":[],"mappings":";;;AACA,0CAAoD;AAEpD;;;;GAIG;AACH,SAAgB,aAAa,CAAmB,GAAa;IAC3D,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAI,GAAS,CAAC,GAAc,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAS,KAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;gBAEhI,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,KAAK,CAAC;iBACd;aACF;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAlBD,sCAkBC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Maybe } from '../value/maybe.type';
|
|
2
|
+
import { FilterKeyValueTuplesInput, KeyValueTuple, KeyValueTupleFilter } from './object.filter.tuple';
|
|
3
|
+
/**
|
|
4
|
+
* Assigns all undefined values from one or more objects into the target object.
|
|
5
|
+
*
|
|
6
|
+
* @param object
|
|
7
|
+
*/
|
|
8
|
+
export declare function overrideInObject<T extends object>(target: Partial<T>, { copy, from, filter }: {
|
|
9
|
+
copy?: boolean;
|
|
10
|
+
from: Partial<T>[];
|
|
11
|
+
filter?: KeyValueTupleFilter<T>;
|
|
12
|
+
}): Partial<T>;
|
|
13
|
+
export declare type OverrideInObjectFunction<T> = (target: Partial<T>) => Partial<T>;
|
|
14
|
+
export declare type OverrideInObjectFunctionFactory<T> = (from: Partial<T>[]) => OverrideInObjectFunction<T>;
|
|
15
|
+
export interface OverrideInObjectFunctionFactoryConfig<T extends object> {
|
|
16
|
+
filter?: KeyValueTupleFilter<T>;
|
|
17
|
+
/**
|
|
18
|
+
* Whether or not to return a copy of the input value, rather than change it directly.
|
|
19
|
+
* If true, a copy of the input object will be returned.
|
|
20
|
+
* If false, the input object will be modified.
|
|
21
|
+
*
|
|
22
|
+
* False by default.
|
|
23
|
+
*/
|
|
24
|
+
copy?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether or not the template being applied to objects should be recalculated each time.
|
|
27
|
+
*
|
|
28
|
+
* This is only necessary if you expect the input targets to change and you want those changes reflected in your copy functions.
|
|
29
|
+
*
|
|
30
|
+
* False by default.
|
|
31
|
+
*/
|
|
32
|
+
dynamic?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare function overrideInObjectFunctionFactory<T extends object>({ filter, copy, dynamic }: OverrideInObjectFunctionFactoryConfig<T>): OverrideInObjectFunctionFactory<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Merges all input objects into one. The order of overrides is kept, so the right-most item in the array will have priority over all objects before it.
|
|
37
|
+
*
|
|
38
|
+
* @param objects
|
|
39
|
+
*/
|
|
40
|
+
export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>>[], filter?: KeyValueTupleFilter<T>): Partial<T>;
|
|
41
|
+
/**
|
|
42
|
+
* Merges all values from the input objects into a single object.
|
|
43
|
+
*
|
|
44
|
+
* The order of overrides is kept, so the right-most item in the array will have priority over all objects before it.
|
|
45
|
+
*/
|
|
46
|
+
export declare type MergeObjectsFunction<T extends object> = (objects: Maybe<Partial<T>>[]) => Partial<T>;
|
|
47
|
+
export declare function mergeObjectsFunction<T extends object>(filter?: KeyValueTupleFilter<T>): MergeObjectsFunction<T>;
|
|
48
|
+
/**
|
|
49
|
+
* Returns a copy of the input object with all undefined (and null values if filterNull=true) values filtered/removed from it.
|
|
50
|
+
*
|
|
51
|
+
* @param obj
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
export declare function filterUndefinedValues<T extends object>(obj: T, filterNull?: boolean): T;
|
|
55
|
+
/**
|
|
56
|
+
* Returns a copy of the input object with all undefined values filtered from it.
|
|
57
|
+
*
|
|
58
|
+
* @param obj
|
|
59
|
+
* @returns
|
|
60
|
+
*/
|
|
61
|
+
export declare const filterOnlyUndefinedValues: GeneralFilterFromPOJOFunction;
|
|
62
|
+
/**
|
|
63
|
+
* Returns a copy of the input object with all null and undefined values filtered from it.
|
|
64
|
+
*
|
|
65
|
+
* @param obj
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
export declare const filterNullAndUndefinedValues: GeneralFilterFromPOJOFunction;
|
|
69
|
+
/**
|
|
70
|
+
* Returns all keys that are not associated with an undefined value.
|
|
71
|
+
*
|
|
72
|
+
* @param obj
|
|
73
|
+
* @returns
|
|
74
|
+
*/
|
|
75
|
+
export declare const allNonUndefinedKeys: GeneralFindPOJOKeysFunction;
|
|
76
|
+
/**
|
|
77
|
+
* Returns all keys that are not associated with a null/undefined value.
|
|
78
|
+
*
|
|
79
|
+
* @param obj
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
export declare const allMaybeSoKeys: GeneralFindPOJOKeysFunction;
|
|
83
|
+
/**
|
|
84
|
+
* Finds keys from the POJO that meet the filter.
|
|
85
|
+
*
|
|
86
|
+
* @param obj
|
|
87
|
+
* @param filter
|
|
88
|
+
* @returns
|
|
89
|
+
*/
|
|
90
|
+
export declare function findPOJOKeys<T extends object>(obj: T, filter: FilterKeyValueTuplesInput<T>): (keyof T)[];
|
|
91
|
+
/**
|
|
92
|
+
* Finds and finds the number of keys from the POJO that meet the filter.
|
|
93
|
+
*/
|
|
94
|
+
export declare type FindPOJOKeysFunction<T> = (obj: T) => (keyof T)[];
|
|
95
|
+
export declare type GeneralFindPOJOKeysFunction = <T extends object>(obj: T) => (keyof T)[];
|
|
96
|
+
export declare function findPOJOKeysFunction<T extends object>(filter: FilterKeyValueTuplesInput<T>): FindPOJOKeysFunction<T>;
|
|
97
|
+
/**
|
|
98
|
+
* Finds and counts the number of keys from the POJO that meet the filter.
|
|
99
|
+
*
|
|
100
|
+
* @param obj
|
|
101
|
+
* @param filter
|
|
102
|
+
* @returns
|
|
103
|
+
*/
|
|
104
|
+
export declare function countPOJOKeys<T extends object>(obj: T, filter?: FilterKeyValueTuplesInput<T>): number;
|
|
105
|
+
/**
|
|
106
|
+
* Finds and counts the number of keys from the POJO that meet the filter.
|
|
107
|
+
*/
|
|
108
|
+
export declare type CountPOJOKeysFunction<T> = (obj: T) => number;
|
|
109
|
+
export declare function countPOJOKeysFunction<T extends object>(filter?: FilterKeyValueTuplesInput<T>): CountPOJOKeysFunction<T>;
|
|
110
|
+
export interface FilterFromPOJO<T extends object> {
|
|
111
|
+
copy?: boolean;
|
|
112
|
+
filter?: Omit<FilterKeyValueTuplesInput<T>, 'inverse'>;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Removes values, per the the filter config, from the input object.
|
|
116
|
+
*
|
|
117
|
+
* @param obj POJO to remove undefined values from.
|
|
118
|
+
* @param copy Whether or not to return a copy of the input object. Default is true.
|
|
119
|
+
*/
|
|
120
|
+
export declare function filterFromPOJO<T extends object>(obj: T, config?: FilterFromPOJO<T>): T;
|
|
121
|
+
/**
|
|
122
|
+
* Removes values from the input object.
|
|
123
|
+
*
|
|
124
|
+
* @param obj POJO to remove undefined values from.
|
|
125
|
+
* @param copy Whether or not to return a copy of the input object. Default is true.
|
|
126
|
+
*/
|
|
127
|
+
export declare type FilterFromPOJOFunction<T> = (input: T) => T;
|
|
128
|
+
export declare type GeneralFilterFromPOJOFunction<X = object> = <T extends X>(input: T) => T;
|
|
129
|
+
export declare function filterFromPOJOFunction<T extends object>({ copy, filter: inputFilter }?: FilterFromPOJO<T>): FilterFromPOJOFunction<T>;
|
|
130
|
+
/**
|
|
131
|
+
* Convenience function from filterFromPOJOFunction with copy set to false and using the default filter.
|
|
132
|
+
*/
|
|
133
|
+
export declare const defaultFilterFromPOJOFunctionNoCopy: FilterFromPOJOFunction<object>;
|
|
134
|
+
export declare function assignValuesToPOJO<T extends object>(target: T, obj: T, filter?: FilterKeyValueTuplesInput<T>): T;
|
|
135
|
+
export declare type AssignValuesToPOJOFunction<T> = (target: T, obj: T) => T;
|
|
136
|
+
export declare function assignValuesToPOJOFunction<T extends object>(filter?: FilterKeyValueTuplesInput<T>): AssignValuesToPOJOFunction<T>;
|
|
137
|
+
/**
|
|
138
|
+
* Reads values from matching keys based on the filter and puts them into an array.
|
|
139
|
+
*/
|
|
140
|
+
export declare function valuesFromPOJO<O = unknown, I extends object = object>(target: I, filter?: FilterKeyValueTuplesInput<I>): O[];
|
|
141
|
+
/**
|
|
142
|
+
* Reads values from matching keys based on the filter and puts them into an array.
|
|
143
|
+
*/
|
|
144
|
+
export declare type ValuesFromPOJOFunction<O = unknown, I extends object = object> = (obj: I) => O[];
|
|
145
|
+
export declare function valuesFromPOJOFunction<O = unknown, I extends object = object>(filter?: FilterKeyValueTuplesInput<I>): ValuesFromPOJOFunction<O, I>;
|
|
146
|
+
export declare type ForEachKeyValueOnPOJOTupleFunction<T extends object, C = unknown, K extends keyof T = keyof T> = (tuple: KeyValueTuple<T, K>, index: number, object: T, context: C) => void;
|
|
147
|
+
export declare type ForEachKeyValueOnPOJOFunction<T extends object, C = unknown> = C extends void ? ForEachKeyValueOnPOJOFunctionWithoutContext<T> : ForEachKeyValueOnPOJOFunctionWithContext<T, C>;
|
|
148
|
+
export declare type ForEachKeyValueOnPOJOFunctionWithoutContext<T extends object> = (object: T) => void;
|
|
149
|
+
export declare type ForEachKeyValueOnPOJOFunctionWithContext<T extends object, C = unknown> = (object: T, context: C) => void;
|
|
150
|
+
export declare type ForEachKeyValueOnPOJOConfig<T extends object, C = unknown, K extends keyof T = keyof T> = {
|
|
151
|
+
filter?: FilterKeyValueTuplesInput<T, K>;
|
|
152
|
+
forEach: ForEachKeyValueOnPOJOTupleFunction<T, C, K>;
|
|
153
|
+
};
|
|
154
|
+
export declare function forEachKeyValueOnPOJOFunction<T extends object, C = unknown, K extends keyof T = keyof T>({ forEach, filter }: ForEachKeyValueOnPOJOConfig<T, C, K>): ForEachKeyValueOnPOJOFunction<T, C>;
|