ts-gems 3.9.0 → 3.11.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/lib/dto.d.ts +9 -9
- package/lib/mutable.d.ts +3 -3
- package/lib/non-nullable.d.ts +2 -2
- package/lib/nullish.d.ts +3 -3
- package/lib/omit-never.d.ts +6 -7
- package/lib/omit-undefined.d.ts +5 -7
- package/lib/omit.d.ts +4 -4
- package/lib/partial.d.ts +3 -3
- package/lib/pick.d.ts +1 -1
- package/lib/readonly.d.ts +11 -11
- package/lib/required.d.ts +10 -12
- package/package.json +1 -1
package/lib/dto.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IfNoDeepValue } from './helpers.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { DeeperNullish } from './nullish.js';
|
|
3
|
+
import { DeeperPartial } from './partial.js';
|
|
4
4
|
import { IfNever } from './type-check.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -9,17 +9,17 @@ import { IfNever } from './type-check.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export type DTO<T> = {
|
|
11
11
|
[K in keyof T as IfNever<
|
|
12
|
-
Exclude<T[K]
|
|
12
|
+
Exclude<NonNullable<T[K]> | Function>,
|
|
13
13
|
never,
|
|
14
14
|
K
|
|
15
|
-
>]:
|
|
15
|
+
>]: NonNullable<T[K]> extends (infer U)[] // Deep process arrays
|
|
16
16
|
? DTO<U>[]
|
|
17
17
|
: // Do not deep process No-Deep values
|
|
18
|
-
IfNoDeepValue<
|
|
19
|
-
?
|
|
18
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
19
|
+
? NonNullable<T[K]>
|
|
20
20
|
: // Deep process objects
|
|
21
|
-
DTO<
|
|
21
|
+
DTO<NonNullable<T[K]>>;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
export type PartialDTO<T> =
|
|
25
|
-
export type PatchDTO<T> =
|
|
24
|
+
export type PartialDTO<T> = DeeperPartial<DTO<T>>;
|
|
25
|
+
export type PatchDTO<T> = DeeperNullish<DTO<T>>;
|
package/lib/mutable.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export type DeepMutable<T> = {
|
|
|
33
33
|
>]: IfNoDeepValue<Exclude<T[K], undefined>> extends true // Do not deep process No-Deep values
|
|
34
34
|
? T[K]
|
|
35
35
|
: // Deep process objects
|
|
36
|
-
DeepMutable<
|
|
36
|
+
DeepMutable<NonNullable<T[K]>>;
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
/**
|
|
@@ -47,10 +47,10 @@ export type DeeperMutable<T> = {
|
|
|
47
47
|
>]: Exclude<T[K], undefined> extends (infer U)[] // Deep process arrays
|
|
48
48
|
? DeeperMutable<U>[]
|
|
49
49
|
: // Do not deep process No-Deep values
|
|
50
|
-
IfNoDeepValue<
|
|
50
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
51
51
|
? T[K]
|
|
52
52
|
: // Deep process objects
|
|
53
|
-
DeeperMutable<
|
|
53
|
+
DeeperMutable<NonNullable<T[K]>>;
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
/**
|
package/lib/non-nullable.d.ts
CHANGED
|
@@ -37,10 +37,10 @@ export type DeeperUnNullish<T> = {
|
|
|
37
37
|
Exclude<T[K], undefined>,
|
|
38
38
|
never,
|
|
39
39
|
IfNull<Exclude<T[K], undefined>, never, K>
|
|
40
|
-
>]: NonNullable<
|
|
40
|
+
>]: NonNullable<NonNullable<T[K]>> extends (infer U)[]
|
|
41
41
|
? DeeperUnNullish<U>[]
|
|
42
42
|
: // Do not deep process No-Deep values
|
|
43
|
-
IfNoDeepValue<
|
|
43
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
44
44
|
? NonNullable<T[K]>
|
|
45
45
|
: // Deep process objects
|
|
46
46
|
DeeperUnNullish<NonNullable<T[K]>>;
|
package/lib/nullish.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export type DeepNullish<T> = {
|
|
|
18
18
|
> extends true
|
|
19
19
|
? T[K] | null
|
|
20
20
|
: // Deep process objects
|
|
21
|
-
DeepNullish<
|
|
21
|
+
DeepNullish<NonNullable<T[K]>> | null;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
/**
|
|
@@ -32,8 +32,8 @@ export type DeeperNullish<T> = {
|
|
|
32
32
|
> extends (infer U)[]
|
|
33
33
|
? DeeperNullish<U>[] | null
|
|
34
34
|
: // Do not deep process No-Deep values
|
|
35
|
-
IfNoDeepValue<
|
|
35
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
36
36
|
? T[K] | null
|
|
37
37
|
: // Deep process objects
|
|
38
|
-
DeeperNullish<
|
|
38
|
+
DeeperNullish<NonNullable<T[K]>> | null;
|
|
39
39
|
};
|
package/lib/omit-never.d.ts
CHANGED
|
@@ -30,26 +30,25 @@ export type OmitNever<T> = {
|
|
|
30
30
|
export type DeepOmitNever<T> = {
|
|
31
31
|
[K in keyof T as IfNever<Exclude<T[K], undefined>, never, K>]: IfNoDeepValue<
|
|
32
32
|
// Do not deep process No-Deep values
|
|
33
|
-
|
|
33
|
+
NonNullable<T[K]>
|
|
34
34
|
> extends true
|
|
35
35
|
? T[K]
|
|
36
36
|
: // Deep process objects
|
|
37
|
-
DeepOmitNever<
|
|
37
|
+
DeepOmitNever<NonNullable<T[K]>>;
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* Omit all "never" and "undefined" properties in T deeply including arrays
|
|
42
42
|
*/
|
|
43
43
|
export type DeeperOmitNever<T> = {
|
|
44
|
-
[K in keyof T as IfNever<Exclude<T[K], undefined>, never, K>]:
|
|
44
|
+
[K in keyof T as IfNever<Exclude<T[K], undefined>, never, K>]: NonNullable<
|
|
45
45
|
// Deep process arrays
|
|
46
|
-
T[K]
|
|
47
|
-
undefined
|
|
46
|
+
T[K]
|
|
48
47
|
> extends (infer U)[]
|
|
49
48
|
? DeeperOmitNever<U>[]
|
|
50
49
|
: // Do not deep process No-Deep values
|
|
51
|
-
IfNoDeepValue<
|
|
50
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
52
51
|
? T[K]
|
|
53
52
|
: // Deep process objects
|
|
54
|
-
DeeperOmitNever<
|
|
53
|
+
DeeperOmitNever<NonNullable<T[K]>>;
|
|
55
54
|
};
|
package/lib/omit-undefined.d.ts
CHANGED
|
@@ -25,15 +25,13 @@ export type DeepOmitUndefined<T> = {
|
|
|
25
25
|
* Omit all "never" and "undefined" properties in T deeply including arrays
|
|
26
26
|
*/
|
|
27
27
|
export type DeeperOmitUndefined<T> = {
|
|
28
|
-
[K in keyof T as IfNever<Exclude<T[K], undefined>, never, K>]:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
undefined
|
|
32
|
-
> extends (infer U)[]
|
|
28
|
+
[K in keyof T as IfNever<Exclude<T[K], undefined>, never, K>]: NonNullable<
|
|
29
|
+
T[K]
|
|
30
|
+
> extends (infer U)[] // Deep process arrays
|
|
33
31
|
? DeeperOmitUndefined<U>[]
|
|
34
32
|
: // Do not deep process No-Deep values
|
|
35
|
-
IfNoDeepValue<
|
|
33
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
36
34
|
? T[K]
|
|
37
35
|
: // Deep process objects
|
|
38
|
-
DeeperOmitUndefined<
|
|
36
|
+
DeeperOmitUndefined<NonNullable<T[K]>>;
|
|
39
37
|
};
|
package/lib/omit.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export type OmitFunctions<T> = {
|
|
|
18
18
|
// Omit never keys
|
|
19
19
|
IfNever<Exclude<T[K], undefined>>,
|
|
20
20
|
// Omit functions
|
|
21
|
-
IfFunction<
|
|
21
|
+
IfFunction<NonNullable<T[K]>>
|
|
22
22
|
> extends true
|
|
23
23
|
? never
|
|
24
24
|
: K]: T[K];
|
|
@@ -45,7 +45,7 @@ export type DeepOmitTypes<T, X> = {
|
|
|
45
45
|
>]: IfNoDeepValue<Exclude<T[K], undefined>> extends true // Do not deep process No-Deep values
|
|
46
46
|
? Exclude<T[K], X>
|
|
47
47
|
: // Deep process objects
|
|
48
|
-
DeepOmitTypes<
|
|
48
|
+
DeepOmitTypes<NonNullable<T[K]>, X>;
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
/**
|
|
@@ -58,8 +58,8 @@ export type DeeperOmitTypes<T, X> = {
|
|
|
58
58
|
undefined
|
|
59
59
|
> extends (infer U)[]
|
|
60
60
|
? DeeperOmitTypes<U, X>[]
|
|
61
|
-
: IfNoDeepValue<
|
|
61
|
+
: IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
62
62
|
? Exclude<T[K], X>
|
|
63
63
|
: // Deep process objects
|
|
64
|
-
DeeperOmitTypes<
|
|
64
|
+
DeeperOmitTypes<NonNullable<T[K]>, X>;
|
|
65
65
|
};
|
package/lib/partial.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export type DeepPartial<T> = {
|
|
|
25
25
|
> extends true
|
|
26
26
|
? T[K]
|
|
27
27
|
: // Deep process objects
|
|
28
|
-
DeepPartial<
|
|
28
|
+
DeepPartial<NonNullable<T[K]>>;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -39,10 +39,10 @@ export type DeeperPartial<T> = {
|
|
|
39
39
|
> extends (infer U)[]
|
|
40
40
|
? DeeperPartial<U>[]
|
|
41
41
|
: // Do not deep process No-Deep values
|
|
42
|
-
IfNoDeepValue<
|
|
42
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
43
43
|
? T[K]
|
|
44
44
|
: // Deep process objects
|
|
45
|
-
DeeperPartial<
|
|
45
|
+
DeeperPartial<NonNullable<T[K]>>;
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
/**
|
package/lib/pick.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export type PickFunctions<T> = {
|
|
|
31
31
|
// Omit never keys
|
|
32
32
|
IfNever<Exclude<T[K], undefined>>,
|
|
33
33
|
// Omit non functions
|
|
34
|
-
IfFunction<
|
|
34
|
+
IfFunction<NonNullable<T[K]>, false, true>
|
|
35
35
|
> extends true
|
|
36
36
|
? never
|
|
37
37
|
: K]: T[K];
|
package/lib/readonly.d.ts
CHANGED
|
@@ -83,10 +83,10 @@ export type DeepPickReadonly<T> = {
|
|
|
83
83
|
IfEquals<{ [Q in K]: T[K] }, { readonly [Q in K]: T[K] }, false, true>
|
|
84
84
|
> extends true
|
|
85
85
|
? never
|
|
86
|
-
: K]: IfNoDeepValue<
|
|
86
|
+
: K]: IfNoDeepValue<NonNullable<T[K]>> extends true // Do not deep process No-Deep values
|
|
87
87
|
? T[K]
|
|
88
88
|
: // Deep process objects
|
|
89
|
-
DeepPickReadonly<
|
|
89
|
+
DeepPickReadonly<NonNullable<T[K]>>;
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
/**
|
|
@@ -95,15 +95,15 @@ export type DeepPickReadonly<T> = {
|
|
|
95
95
|
export type DeepOmitReadonly<T> = {
|
|
96
96
|
[K in keyof T as Or<
|
|
97
97
|
// Omit never keys
|
|
98
|
-
IfNever<
|
|
98
|
+
IfNever<NonNullable<T[K]>>,
|
|
99
99
|
// Omit required
|
|
100
100
|
IfEquals<{ [Q in K]: T[K] }, { readonly [Q in K]: T[K] }>
|
|
101
101
|
> extends true
|
|
102
102
|
? never
|
|
103
|
-
: K]: IfNoDeepValue<
|
|
103
|
+
: K]: IfNoDeepValue<NonNullable<T[K]>> extends true // Do not deep process No-Deep values
|
|
104
104
|
? T[K]
|
|
105
105
|
: // Deep process objects
|
|
106
|
-
DeepOmitReadonly<
|
|
106
|
+
DeepOmitReadonly<NonNullable<T[K]>>;
|
|
107
107
|
};
|
|
108
108
|
|
|
109
109
|
/**
|
|
@@ -117,13 +117,13 @@ export type DeeperPickReadonly<T> = {
|
|
|
117
117
|
IfEquals<{ [Q in K]: T[K] }, { readonly [Q in K]: T[K] }, false, true>
|
|
118
118
|
> extends true
|
|
119
119
|
? never
|
|
120
|
-
: K]:
|
|
120
|
+
: K]: NonNullable<T[K]> extends (infer U)[] // Deep process arrays
|
|
121
121
|
? DeeperPickReadonly<U>[]
|
|
122
122
|
: // Do not deep process No-Deep values
|
|
123
|
-
IfNoDeepValue<
|
|
123
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
124
124
|
? T[K]
|
|
125
125
|
: // Deep process objects
|
|
126
|
-
DeeperPickReadonly<
|
|
126
|
+
DeeperPickReadonly<NonNullable<T[K]>>;
|
|
127
127
|
};
|
|
128
128
|
|
|
129
129
|
/**
|
|
@@ -137,11 +137,11 @@ export type DeeperOmitReadonly<T> = {
|
|
|
137
137
|
IfEquals<{ [Q in K]: T[K] }, { readonly [Q in K]: T[K] }>
|
|
138
138
|
> extends true
|
|
139
139
|
? never
|
|
140
|
-
: K]:
|
|
140
|
+
: K]: NonNullable<T[K]> extends (infer U)[] // Deep process arrays
|
|
141
141
|
? DeeperOmitReadonly<U>[]
|
|
142
142
|
: // Do not deep process No-Deep values
|
|
143
|
-
IfNoDeepValue<
|
|
143
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
144
144
|
? T[K]
|
|
145
145
|
: // Deep process objects
|
|
146
|
-
DeeperOmitReadonly<
|
|
146
|
+
DeeperOmitReadonly<NonNullable<T[K]>>;
|
|
147
147
|
};
|
package/lib/required.d.ts
CHANGED
|
@@ -30,14 +30,12 @@ export type DeepRequired<T> = {
|
|
|
30
30
|
* Make all properties in T required deeply including arrays
|
|
31
31
|
*/
|
|
32
32
|
export type DeeperRequired<T> = {
|
|
33
|
-
[K in keyof T as IfNever<Exclude<T[K], undefined>, never, K>]-?:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
undefined
|
|
37
|
-
> extends (infer U)[]
|
|
33
|
+
[K in keyof T as IfNever<Exclude<T[K], undefined>, never, K>]-?: NonNullable<
|
|
34
|
+
T[K]
|
|
35
|
+
> extends (infer U)[] // Deep process arrays
|
|
38
36
|
? DeeperRequired<U>[]
|
|
39
37
|
: // Do not deep process No-Deep values
|
|
40
|
-
IfNoDeepValue<
|
|
38
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
41
39
|
? Exclude<T[K], undefined>
|
|
42
40
|
: // Deep process objects
|
|
43
41
|
DeepRequired<Exclude<T[K], undefined>>;
|
|
@@ -88,7 +86,7 @@ export type DeepPickRequired<T> = {
|
|
|
88
86
|
IfEquals<{ [Q in K]: T[K] }, { [Q in K]?: T[K] }>
|
|
89
87
|
> extends true
|
|
90
88
|
? never
|
|
91
|
-
: K]: IfNoDeepValue<
|
|
89
|
+
: K]: IfNoDeepValue<NonNullable<T[K]>> extends true // Do not deep process No-Deep values
|
|
92
90
|
? T[K]
|
|
93
91
|
: // Deep process objects
|
|
94
92
|
DeepPickRequired<Exclude<T[K], undefined>>;
|
|
@@ -105,7 +103,7 @@ export type DeepOmitRequired<T> = {
|
|
|
105
103
|
IfEquals<{ [Q in K]: T[K] }, { [Q in K]-?: T[K] }>
|
|
106
104
|
> extends true
|
|
107
105
|
? never
|
|
108
|
-
: K]?: IfNoDeepValue<
|
|
106
|
+
: K]?: IfNoDeepValue<NonNullable<T[K]>> extends true // Do not deep process No-Deep values
|
|
109
107
|
? T[K]
|
|
110
108
|
: // Deep process objects
|
|
111
109
|
DeepOmitRequired<Exclude<T[K], undefined>>;
|
|
@@ -122,10 +120,10 @@ export type DeeperPickRequired<T> = {
|
|
|
122
120
|
IfEquals<{ [Q in K]: T[K] }, { [Q in K]?: T[K] }>
|
|
123
121
|
> extends true
|
|
124
122
|
? never
|
|
125
|
-
: K]:
|
|
123
|
+
: K]: NonNullable<T[K]> extends (infer U)[] // Deep process arrays
|
|
126
124
|
? DeeperPickRequired<U>[]
|
|
127
125
|
: // Do not deep process No-Deep values
|
|
128
|
-
IfNoDeepValue<
|
|
126
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
129
127
|
? T[K]
|
|
130
128
|
: // Deep process objects
|
|
131
129
|
DeeperPickRequired<Exclude<T[K], undefined>>;
|
|
@@ -142,10 +140,10 @@ export type DeeperOmitRequired<T> = {
|
|
|
142
140
|
IfEquals<{ [Q in K]: T[K] }, { [Q in K]-?: T[K] }>
|
|
143
141
|
> extends true
|
|
144
142
|
? never
|
|
145
|
-
: K]:
|
|
143
|
+
: K]: NonNullable<T[K]> extends (infer U)[] // Deep process arrays
|
|
146
144
|
? DeeperOmitRequired<U>[]
|
|
147
145
|
: // Do not deep process No-Deep values
|
|
148
|
-
IfNoDeepValue<
|
|
146
|
+
IfNoDeepValue<NonNullable<T[K]>> extends true
|
|
149
147
|
? T[K]
|
|
150
148
|
: // Deep process objects
|
|
151
149
|
DeeperOmitRequired<Exclude<T[K], undefined>>;
|