@dereekb/util 8.7.2 → 8.7.5
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 +18 -0
- package/package.json +1 -1
- package/src/lib/object/object.filter.tuple.d.ts +5 -1
- package/src/lib/object/object.filter.tuple.js +6 -2
- package/src/lib/object/object.filter.tuple.js.map +1 -1
- package/src/lib/type.d.ts +4 -0
- package/test/CHANGELOG.md +12 -0
- package/test/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [8.7.5](https://github.com/dereekb/dbx-components/compare/v8.7.4-dev...v8.7.5) (2022-06-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [8.7.4](https://github.com/dereekb/dbx-components/compare/v8.7.3-dev...v8.7.4) (2022-06-26)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## [8.7.3](https://github.com/dereekb/dbx-components/compare/v8.7.2-dev...v8.7.3) (2022-06-25)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* added KeyAsString ([1337d42](https://github.com/dereekb/dbx-components/commit/1337d42c0877173f55fe07e73958643766912301))
|
|
19
|
+
* fixed filterKeyValueTupleFunction() keys filter ([dbf721f](https://github.com/dereekb/dbx-components/commit/dbf721fa74eb1678e61a3d1c8164d412e65ee4b0))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
5
23
|
## [8.7.2](https://github.com/dereekb/dbx-components/compare/v8.7.1-dev...v8.7.2) (2022-06-24)
|
|
6
24
|
|
|
7
25
|
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FilterFunction } from '../filter/filter';
|
|
2
|
+
import { KeyAsString } from '../type';
|
|
2
3
|
export declare type ForEachKeyValueTupleFunction<T extends object = object, K extends keyof T = keyof T> = (tuple: KeyValueTuple<T, K>, index: number) => void;
|
|
3
4
|
export interface ForEachKeyValue<T extends object = object, K extends keyof T = keyof T> {
|
|
4
5
|
filter?: FilterKeyValueTuplesInput<T, K>;
|
|
@@ -14,6 +15,9 @@ export declare type FilterKeyValueTuplesFunction<T extends object = object, K ex
|
|
|
14
15
|
export declare function filterKeyValueTuplesFunction<T extends object = object, K extends keyof T = keyof T>(filter?: FilterKeyValueTuplesInput<T, K>): FilterKeyValueTuplesFunction<T, K>;
|
|
15
16
|
export declare function allKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T): KeyValueTuple<T, K>[];
|
|
16
17
|
export declare type FilterKeyValueTuplesInput<T extends object = object, K extends keyof T = keyof T> = KeyValueTypleValueFilter | KeyValueTupleFilter<T, K>;
|
|
18
|
+
/**
|
|
19
|
+
* Value filter options for filterKeyValueTupleFunction()
|
|
20
|
+
*/
|
|
17
21
|
export declare enum KeyValueTypleValueFilter {
|
|
18
22
|
/**
|
|
19
23
|
* No filter
|
|
@@ -51,7 +55,7 @@ export declare enum KeyValueTypleValueFilter {
|
|
|
51
55
|
export interface KeyValueTupleFilter<T extends object = object, K extends keyof T = keyof T> {
|
|
52
56
|
valueFilter?: KeyValueTypleValueFilter;
|
|
53
57
|
invertFilter?: boolean;
|
|
54
|
-
keysFilter?: K[];
|
|
58
|
+
keysFilter?: (K | KeyAsString<K>)[];
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
57
61
|
* Converts an input FilterKeyValueTuplesInput to a KeyValueTupleFilter.
|
|
@@ -28,6 +28,9 @@ function allKeyValueTuples(obj) {
|
|
|
28
28
|
return Object.entries(obj);
|
|
29
29
|
}
|
|
30
30
|
exports.allKeyValueTuples = allKeyValueTuples;
|
|
31
|
+
/**
|
|
32
|
+
* Value filter options for filterKeyValueTupleFunction()
|
|
33
|
+
*/
|
|
31
34
|
var KeyValueTypleValueFilter;
|
|
32
35
|
(function (KeyValueTypleValueFilter) {
|
|
33
36
|
/**
|
|
@@ -80,7 +83,7 @@ function filterKeyValueTuplesInputToFilter(input) {
|
|
|
80
83
|
exports.filterKeyValueTuplesInputToFilter = filterKeyValueTuplesInputToFilter;
|
|
81
84
|
function filterKeyValueTupleFunction(inputFilter) {
|
|
82
85
|
const filter = filterKeyValueTuplesInputToFilter(inputFilter);
|
|
83
|
-
const { valueFilter: type, invertFilter: inverseFilter = false, keysFilter } = filter;
|
|
86
|
+
const { valueFilter: type = KeyValueTypleValueFilter.UNDEFINED, invertFilter: inverseFilter = false, keysFilter } = filter;
|
|
84
87
|
let filterFn;
|
|
85
88
|
switch (type) {
|
|
86
89
|
case KeyValueTypleValueFilter.UNDEFINED:
|
|
@@ -111,7 +114,8 @@ function filterKeyValueTupleFunction(inputFilter) {
|
|
|
111
114
|
}
|
|
112
115
|
if (keysFilter) {
|
|
113
116
|
const filterByTypeFn = filterFn;
|
|
114
|
-
|
|
117
|
+
// convert all the input keys to strings for our set, as Object.entries will return only strings.
|
|
118
|
+
const keysSet = new Set(keysFilter.map((x) => x.toString()));
|
|
115
119
|
filterFn = (x, i) => filterByTypeFn(x, i) && keysSet.has(x[0]);
|
|
116
120
|
}
|
|
117
121
|
return (0, filter_1.invertFilter)(filterFn, inverseFilter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.filter.tuple.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.filter.tuple.ts"],"names":[],"mappings":";;;AAAA,6CAAgE;
|
|
1
|
+
{"version":3,"file":"object.filter.tuple.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.filter.tuple.ts"],"names":[],"mappings":"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"}
|
package/src/lib/type.d.ts
CHANGED
|
@@ -24,6 +24,10 @@ export declare type StringKeyValueTransformMap<T, V> = {
|
|
|
24
24
|
export declare type KeysAsStrings<T> = {
|
|
25
25
|
[K in keyof T as string]: T[K];
|
|
26
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Converts the input value to a string, if possible. Never otherwise.
|
|
29
|
+
*/
|
|
30
|
+
export declare type KeyAsString<K> = K extends number | boolean | string | null | undefined ? `${K}` : never;
|
|
27
31
|
export declare type BooleanKeyValueTransformMap<T> = KeyValueTransformMap<T, boolean>;
|
|
28
32
|
/**
|
|
29
33
|
* Merges the types T and R, but replaces keys within T with those in R.
|
package/test/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [8.7.5](https://github.com/dereekb/dbx-components/compare/v8.7.4-dev...v8.7.5) (2022-06-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [8.7.4](https://github.com/dereekb/dbx-components/compare/v8.7.3-dev...v8.7.4) (2022-06-26)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## [8.7.3](https://github.com/dereekb/dbx-components/compare/v8.7.2-dev...v8.7.3) (2022-06-25)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
5
17
|
## [8.7.2](https://github.com/dereekb/dbx-components/compare/v8.7.1-dev...v8.7.2) (2022-06-24)
|
|
6
18
|
|
|
7
19
|
|
package/test/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/util/test",
|
|
3
|
-
"version": "8.7.
|
|
3
|
+
"version": "8.7.5",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {},
|
|
8
8
|
"peerDependencies": {
|
|
9
|
-
"@dereekb/util": "8.7.
|
|
9
|
+
"@dereekb/util": "8.7.5",
|
|
10
10
|
"make-error": "^1.3.0",
|
|
11
11
|
"ts-essentials": "^9.1.2",
|
|
12
12
|
"extra-set": "^2.2.11",
|