@naturalcycles/js-lib 14.77.0 → 14.78.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/dist/types.d.ts CHANGED
@@ -95,8 +95,8 @@ export declare type ValuesOf<T extends readonly any[]> = T[number];
95
95
  */
96
96
  export declare type ValueOf<T> = T[keyof T];
97
97
  export declare type KeyValueTuple<K, V> = [key: K, value: V];
98
- export declare type ObjectMapper<OBJ, OUT> = (key: string, value: OBJ[keyof OBJ], obj: OBJ) => OUT;
99
- export declare type ObjectPredicate<OBJ> = (key: keyof OBJ, value: OBJ[keyof OBJ], obj: OBJ) => boolean;
98
+ export declare type ObjectMapper<OBJ, OUT> = (key: string, value: Exclude<OBJ[keyof OBJ], undefined>, obj: OBJ) => OUT;
99
+ export declare type ObjectPredicate<OBJ> = (key: keyof OBJ, value: Exclude<OBJ[keyof OBJ], undefined>, obj: OBJ) => boolean;
100
100
  /**
101
101
  * Allows to identify instance of Class by `instanceId`.
102
102
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturalcycles/js-lib",
3
- "version": "14.77.0",
3
+ "version": "14.78.0",
4
4
  "scripts": {
5
5
  "prepare": "husky install",
6
6
  "build-prod": "build-prod-esm-cjs",
package/src/types.ts CHANGED
@@ -122,9 +122,18 @@ export type ValueOf<T> = T[keyof T]
122
122
 
123
123
  export type KeyValueTuple<K, V> = [key: K, value: V]
124
124
 
125
- export type ObjectMapper<OBJ, OUT> = (key: string, value: OBJ[keyof OBJ], obj: OBJ) => OUT
126
-
127
- export type ObjectPredicate<OBJ> = (key: keyof OBJ, value: OBJ[keyof OBJ], obj: OBJ) => boolean
125
+ // Exclude<something, undefined> is used here to support StringMap<OBJ> (because values of StringMap add `undefined`)
126
+ export type ObjectMapper<OBJ, OUT> = (
127
+ key: string,
128
+ value: Exclude<OBJ[keyof OBJ], undefined>,
129
+ obj: OBJ,
130
+ ) => OUT
131
+
132
+ export type ObjectPredicate<OBJ> = (
133
+ key: keyof OBJ,
134
+ value: Exclude<OBJ[keyof OBJ], undefined>,
135
+ obj: OBJ,
136
+ ) => boolean
128
137
 
129
138
  /**
130
139
  * Allows to identify instance of Class by `instanceId`.