ts-gems 2.7.1 → 2.7.2
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/lib/keys.d.ts +14 -17
- package/lib/type-check.d.ts +1 -1
- package/package.json +4 -4
package/lib/keys.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IfEquals, IfCompatible, IfUndefined, IfAny, IfJson } from './type-check';
|
|
1
|
+
import { IfEquals, IfCompatible, IfUndefined, IfAny, IfJson, IfNull } from './type-check';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* KeyOf
|
|
@@ -18,9 +18,9 @@ export type ValuesOf<T> = T[keyof T];
|
|
|
18
18
|
*/
|
|
19
19
|
export type RequiredKeys<T> = _RequiredKeys<T>
|
|
20
20
|
export type _RequiredKeys<T> = {
|
|
21
|
-
[K in keyof T]-?: IfUndefined<T[K]> extends true
|
|
22
|
-
?
|
|
23
|
-
|
|
21
|
+
[K in keyof T]-?: IfUndefined<T[K]> extends true ? never
|
|
22
|
+
: T extends { [K1 in K]: any } ? K
|
|
23
|
+
: never
|
|
24
24
|
}[keyof T];
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -29,9 +29,9 @@ export type _RequiredKeys<T> = {
|
|
|
29
29
|
*/
|
|
30
30
|
export type OptionalKeys<T> = _OptionalKeys<T>
|
|
31
31
|
export type _OptionalKeys<T> = {
|
|
32
|
-
[K in keyof T]-?: IfUndefined<T[K]> extends true
|
|
33
|
-
? never
|
|
34
|
-
|
|
32
|
+
[K in keyof T]-?: IfUndefined<T[K]> extends true ? never
|
|
33
|
+
: T extends { [K1 in K]: any } ? never
|
|
34
|
+
: K
|
|
35
35
|
}[keyof T];
|
|
36
36
|
|
|
37
37
|
|
|
@@ -49,10 +49,8 @@ export type ReadonlyKeys<T> = {
|
|
|
49
49
|
export type JsonKeys<T> = _JsonKeys<T>;
|
|
50
50
|
type _JsonKeys<T, J = Required<T>> = ValuesOf<{
|
|
51
51
|
[K in keyof J]: K extends symbol ? never
|
|
52
|
-
:
|
|
53
|
-
?
|
|
54
|
-
: IfJson<J[K]> extends true
|
|
55
|
-
? K
|
|
52
|
+
: IfNull<J[K]> extends true ? K
|
|
53
|
+
: IfJson<Exclude<J[K], undefined>> extends true ? K
|
|
56
54
|
: never
|
|
57
55
|
|
|
58
56
|
}>;
|
|
@@ -77,23 +75,22 @@ export type WritableJsonKeys<T> = Extract<{
|
|
|
77
75
|
*/
|
|
78
76
|
export type FunctionKeys<T> = ValuesOf<{
|
|
79
77
|
[K in keyof T]-?: IfUndefined<T[K]> extends false ?
|
|
80
|
-
IfAny<T[K]> extends false
|
|
81
|
-
T[K] extends Function ? K
|
|
78
|
+
IfAny<T[K]> extends false
|
|
79
|
+
? T[K] extends Function ? K
|
|
82
80
|
: never : never : never;
|
|
83
81
|
}>;
|
|
84
82
|
|
|
85
83
|
/**
|
|
86
84
|
* @desc Returns non function keys of an object
|
|
87
85
|
*/
|
|
88
|
-
export type NonFunctionKeys<T> =
|
|
86
|
+
export type NonFunctionKeys<T> = ValuesOf<{
|
|
89
87
|
[K in keyof T]-?: IfUndefined<T[K]> extends false ?
|
|
90
|
-
IfAny<T[K]> extends false
|
|
91
|
-
T[K] extends Function ? never
|
|
88
|
+
IfAny<T[K]> extends false
|
|
89
|
+
? T[K] extends Function ? never
|
|
92
90
|
: K : K : K;
|
|
93
91
|
}>;
|
|
94
92
|
|
|
95
93
|
|
|
96
|
-
|
|
97
94
|
/**
|
|
98
95
|
* @desc Returns keys that match given type
|
|
99
96
|
*/
|
package/lib/type-check.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"lodash",
|
|
13
13
|
"underscore"
|
|
14
14
|
],
|
|
15
|
-
"version": "2.7.
|
|
15
|
+
"version": "2.7.2",
|
|
16
16
|
"types": "lib/index.d.ts",
|
|
17
17
|
"main": "lib/index.js",
|
|
18
18
|
"module": "lib/index.js",
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"lib/"
|
|
33
33
|
],
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/jest": "^29.5.
|
|
36
|
-
"eslint": "^8.
|
|
35
|
+
"@types/jest": "^29.5.11",
|
|
36
|
+
"eslint": "^8.55.0",
|
|
37
37
|
"jest": "^29.7.0",
|
|
38
38
|
"ts-jest": "^29.1.1",
|
|
39
|
-
"typescript": "^5.
|
|
39
|
+
"typescript": "^5.3.3"
|
|
40
40
|
}
|
|
41
41
|
}
|