ts-gems 2.9.0 → 2.9.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.
@@ -1,20 +1,20 @@
1
+ import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
1
2
  import { IfNoDeepValue } from './helpers.js';
2
- import { OmitNever } from './omit.js';
3
3
 
4
4
  /**
5
5
  * Combination of Partial and Writable but deeply
6
6
  */
7
- export type DeepBuildable<T> = _DeepBuildable<T>;
7
+ export type DeepBuildable<T> = DeepOmitNever<_DeepBuildable<T>>;
8
8
  type _DeepBuildable<T> =
9
9
  IfNoDeepValue<T> extends true ? T
10
- : OmitNever<{ -readonly [P in keyof T]?: _DeepBuildable<Exclude<T[P], undefined>> }>;
10
+ : { -readonly [P in keyof T]?: _DeepBuildable<Exclude<T[P], undefined>> };
11
11
 
12
12
  /**
13
13
  * Combination of Partial and Writable but deeply including arrays
14
14
  */
15
- export type HighDeepBuildable<T> = _HighDeepBuildable<T>;
15
+ export type HighDeepBuildable<T> = HighDeepOmitNever<_HighDeepBuildable<T>>;
16
16
  type _HighDeepBuildable<T> =
17
17
  T extends (infer U)[] ? _HighDeepBuildable<U>[]
18
18
  : IfNoDeepValue<T> extends true ? T
19
19
  : T extends (infer U)[] ? _HighDeepBuildable<U>[]
20
- : OmitNever<{ -readonly [P in keyof T]?: _HighDeepBuildable<Exclude<T[P], undefined>> }>;
20
+ : { -readonly [P in keyof T]?: _HighDeepBuildable<Exclude<T[P], undefined>> };
@@ -1,95 +1,94 @@
1
1
  import { IfNoDeepValue } from './helpers.js';
2
2
  import { OptionalKeys, ReadonlyKeys, RequiredKeys, WritableKeys } from './keys';
3
- import { OmitNever } from './omit.js';
4
3
 
5
4
  /**
6
5
  * Omit all optional properties in T deeply
7
6
  */
8
- export type DeepOmitOptional<T> = _DeepOmitOptional<Exclude<T, undefined>>;
7
+ export type DeepOmitOptional<T> = DeepOmitNever<_DeepOmitOptional<T>>;
9
8
  type _DeepOmitOptional<T, K extends keyof T = Exclude<keyof T, OptionalKeys<T>>> =
10
9
  IfNoDeepValue<T> extends true ? T
11
- : OmitNever<{ [P in K]-?: DeepOmitOptional<T[P]> }>;
10
+ : { [P in K]-?: _DeepOmitOptional<Exclude<T[P], undefined>> };
12
11
 
13
12
  /**
14
13
  * Omit all optional properties in T deeply including arrays
15
14
  */
16
- export type HighDeepOmitOptional<T> = _HighDeepOmitOptional<Exclude<T, undefined>>;
15
+ export type HighDeepOmitOptional<T> = HighDeepOmitNever<_HighDeepOmitOptional<T>>;
17
16
  type _HighDeepOmitOptional<T, K extends keyof T = Exclude<keyof T, OptionalKeys<T>>> =
18
- T extends (infer U)[] ? HighDeepOmitOptional<U>[]
17
+ T extends (infer U)[] ? _HighDeepOmitOptional<U>[]
19
18
  : IfNoDeepValue<T> extends true ? T
20
- : OmitNever<{ [P in K]-?: HighDeepOmitOptional<T[P]> }>;
19
+ : { [P in K]-?: _HighDeepOmitOptional<Exclude<T[P], undefined>> };
21
20
 
22
21
 
23
22
  /**
24
23
  * Omit all required properties in T deeply
25
24
  */
26
- export type DeepOmitRequired<T> = _DeepOmitRequired<Exclude<T, undefined>>;
25
+ export type DeepOmitRequired<T> = DeepOmitNever<_DeepOmitRequired<T>>;
27
26
  type _DeepOmitRequired<T, J extends keyof T = Exclude<keyof T, RequiredKeys<T>>> =
28
27
  IfNoDeepValue<T> extends true ? T
29
- : OmitNever<{ [P in J]?: DeepOmitRequired<Exclude<T[P], undefined>> }>;
28
+ : { [P in J]?: _DeepOmitRequired<Exclude<T[P], undefined>> };
30
29
 
31
30
 
32
31
  /**
33
32
  * Omit all required properties in T deeply including arrays
34
33
  */
35
- export type HighDeepOmitRequired<T> = _HighDeepOmitRequired<Exclude<T, undefined>>;
34
+ export type HighDeepOmitRequired<T> = HighDeepOmitNever<_HighDeepOmitRequired<T>>;
36
35
  type _HighDeepOmitRequired<T, J extends keyof T = Exclude<keyof T, RequiredKeys<T>>> =
37
- T extends (infer U)[] ? HighDeepOmitRequired<U>[]
36
+ T extends (infer U)[] ? _HighDeepOmitRequired<U>[]
38
37
  : IfNoDeepValue<T> extends true ? T
39
- : OmitNever<{ [P in J]?: HighDeepOmitRequired<Exclude<T[P], undefined>> }>;
38
+ : { [P in J]?: _HighDeepOmitRequired<Exclude<T[P], undefined>> };
40
39
 
41
40
 
42
41
  /**
43
42
  * Omit all readonly properties in T deeply
44
43
  */
45
- export type DeepOmitReadonly<T> = _DeepOmitReadonly<Exclude<T, undefined>>;
44
+ export type DeepOmitReadonly<T> = DeepOmitNever<_DeepOmitReadonly<Exclude<T, undefined>>>;
46
45
  type _DeepOmitReadonly<T, J extends keyof T = Exclude<keyof T, ReadonlyKeys<T>>> =
47
46
  IfNoDeepValue<T> extends true ? T
48
- : OmitNever<{ [P in J]: DeepOmitReadonly<T[P]> }>;
47
+ : { [P in J]: _DeepOmitReadonly<Exclude<T[P], undefined>> };
49
48
 
50
49
 
51
50
  /**
52
51
  * Omit all readonly properties in T deeply including arrays
53
52
  */
54
- export type HighDeepOmitReadonly<T> = _HighDeepOmitReadonly<Exclude<T, undefined>>;
53
+ export type HighDeepOmitReadonly<T> = HighDeepOmitNever<_HighDeepOmitReadonly<T>>;
55
54
  type _HighDeepOmitReadonly<T, J extends keyof T = Exclude<keyof T, ReadonlyKeys<T>>> =
56
- T extends (infer U)[] ? HighDeepOmitReadonly<U>[]
55
+ T extends (infer U)[] ? _HighDeepOmitReadonly<U>[]
57
56
  : IfNoDeepValue<T> extends true ? T
58
- : OmitNever<{ [P in J]: HighDeepOmitReadonly<T[P]> }>;
57
+ : { [P in J]: _HighDeepOmitReadonly<Exclude<T[P], undefined>> };
59
58
 
60
59
 
61
60
  /**
62
61
  * Omit all writable properties in T deeply
63
62
  */
64
- export type DeepOmitWritable<T> = _DeepOmitWritable<Exclude<T, undefined>>
63
+ export type DeepOmitWritable<T> = DeepOmitNever<_DeepOmitWritable<T>>
65
64
  type _DeepOmitWritable<T, K extends keyof T = Exclude<keyof T, WritableKeys<T>>> =
66
65
  IfNoDeepValue<T> extends true ? T
67
- : OmitNever<{ readonly [P in K]: DeepOmitWritable<T[P]> }>
66
+ : { readonly [P in K]: _DeepOmitWritable<Exclude<T[P], undefined>> }
68
67
 
69
68
 
70
69
  /**
71
70
  * Omit all writable properties in T deeply including arrays
72
71
  */
73
- export type HighDeepOmitWritable<T> = _HighDeepOmitWritable<Exclude<T, undefined>>
72
+ export type HighDeepOmitWritable<T> = HighDeepOmitNever<_HighDeepOmitWritable<T>>
74
73
  type _HighDeepOmitWritable<T, K extends keyof T = Exclude<keyof T, WritableKeys<T>>> =
75
- T extends (infer U)[] ? HighDeepOmitWritable<U>[]
74
+ T extends (infer U)[] ? _HighDeepOmitWritable<U>[]
76
75
  : IfNoDeepValue<T> extends true ? T
77
- : OmitNever<{ readonly [P in K]: HighDeepOmitWritable<T[P]> }>
76
+ : { readonly [P in K]: _HighDeepOmitWritable<Exclude<T[P], undefined>> }
78
77
 
79
78
  /**
80
79
  * Omit all "never" and "undefined" properties in T deeply
81
80
  */
82
- export type DeepOmitNever<T> = _DeepOmitNever<Exclude<T, undefined>>
81
+ export type DeepOmitNever<T> = _DeepOmitNever<T>
83
82
  type _DeepOmitNever<T> =
84
83
  IfNoDeepValue<T> extends true ? T
85
- : { [P in keyof T as (Exclude<T[P], undefined> extends never ? never : P)]: DeepOmitNever<T[P]> }
84
+ : { [P in keyof T as (Exclude<T[P], undefined> extends never ? never : P)]: _DeepOmitNever<Exclude<T[P], undefined>> }
86
85
 
87
86
 
88
87
  /**
89
88
  * Omit all "never" and "undefined" properties in T deeply including arrays
90
89
  */
91
- export type HighDeepOmitNever<T> = _HighDeepOmitNever<Exclude<T, undefined>>
90
+ export type HighDeepOmitNever<T> = _HighDeepOmitNever<T>
92
91
  type _HighDeepOmitNever<T> =
93
- T extends (infer U)[] ? HighDeepOmitNever<U>[]
92
+ T extends (infer U)[] ? _HighDeepOmitNever<U>[]
94
93
  : IfNoDeepValue<T> extends true ? T
95
- : { [P in keyof T as (Exclude<T[P], undefined> extends never ? never : P)]: HighDeepOmitNever<T[P]> }
94
+ : { [P in keyof T as (Exclude<T[P], undefined> extends never ? never : P)]: _HighDeepOmitNever<Exclude<T[P], undefined>> }
@@ -1,85 +1,85 @@
1
+ import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
1
2
  import { IfNoDeepValue } from './helpers.js';
2
3
  import { JsonKeys, OptionalKeys, ReadonlyKeys, RequiredKeys, WritableKeys } from './keys';
3
- import { OmitNever } from './omit.js';
4
4
 
5
5
  /**
6
6
  * Pick all optional properties in T deeply
7
7
  */
8
- export type DeepPickOptional<T> = _DeepPickOptional<Exclude<T, undefined>>;
8
+ export type DeepPickOptional<T> = DeepOmitNever<_DeepPickOptional<T>>;
9
9
  type _DeepPickOptional<T, K extends keyof T = OptionalKeys<T>> =
10
10
  IfNoDeepValue<T> extends true ? T
11
- : OmitNever<{ [P in K]?: DeepPickOptional<T[P]> }>;
11
+ : { [P in K]?: _DeepPickOptional<Exclude<T[P], undefined>> };
12
12
 
13
13
  /**
14
14
  * Pick all optional properties in T deeply including arrays
15
15
  */
16
- export type HighDeepPickOptional<T> = _HighDeepPickOptional<Exclude<T, undefined>>;
16
+ export type HighDeepPickOptional<T> = HighDeepOmitNever<_HighDeepPickOptional<T>>;
17
17
  type _HighDeepPickOptional<T, K extends keyof T = OptionalKeys<T>> =
18
- T extends (infer U)[] ? HighDeepPickOptional<U>[]
18
+ T extends (infer U)[] ? _HighDeepPickOptional<U>[]
19
19
  : IfNoDeepValue<T> extends true ? T
20
- : OmitNever<{ [P in K]?: HighDeepPickOptional<T[P]> }>;
20
+ : { [P in K]?: _HighDeepPickOptional<Exclude<T[P], undefined>> };
21
21
 
22
22
 
23
23
  /**
24
24
  * Pick all required properties in T deeply
25
25
  */
26
- export type DeepPickRequired<T> = _DeepPickRequired<Exclude<T, undefined>>;
26
+ export type DeepPickRequired<T> = DeepOmitNever<_DeepPickRequired<T>>;
27
27
  type _DeepPickRequired<T, J extends keyof T = RequiredKeys<T>> =
28
28
  IfNoDeepValue<T> extends true ? T
29
- : OmitNever<{ [P in J]-?: DeepPickRequired<T[P]> }>;
29
+ : { [P in J]-?: _DeepPickRequired<Exclude<T[P], undefined>> };
30
30
 
31
31
 
32
32
  /**
33
33
  * Pick all required properties in T deeply including arrays
34
34
  */
35
- export type HighDeepPickRequired<T> = _HighDeepPickRequired<Exclude<T, undefined>>;
35
+ export type HighDeepPickRequired<T> = HighDeepOmitNever<_HighDeepPickRequired<T>>;
36
36
  type _HighDeepPickRequired<T, J extends keyof T = RequiredKeys<T>> =
37
- T extends (infer U)[] ? HighDeepPickRequired<U>[]
37
+ T extends (infer U)[] ? _HighDeepPickRequired<U>[]
38
38
  : IfNoDeepValue<T> extends true ? T
39
- : OmitNever<{ [P in J]-?: HighDeepPickRequired<T[P]> }>;
39
+ : { [P in J]-?: _HighDeepPickRequired<Exclude<T[P], undefined>> };
40
40
 
41
41
 
42
42
  /**
43
43
  * Pick all readonly properties in T deeply
44
44
  */
45
- export type DeepPickReadonly<T> = _DeepPickReadonly<Exclude<T, undefined>>;
45
+ export type DeepPickReadonly<T> = DeepOmitNever<_DeepPickReadonly<T>>;
46
46
  type _DeepPickReadonly<T, K extends keyof T = ReadonlyKeys<T>> =
47
47
  IfNoDeepValue<T> extends true ? T
48
- : OmitNever<{ [P in K]: DeepPickReadonly<T[P]> }>;
48
+ : { [P in K]: _DeepPickReadonly<Exclude<T[P], undefined>> };
49
49
 
50
50
  /**
51
51
  * Pick all readonly properties in T deeply including arrays
52
52
  */
53
- export type HighDeepPickReadonly<T> = _HighDeepPickReadonly<Exclude<T, undefined>>;
53
+ export type HighDeepPickReadonly<T> = HighDeepOmitNever<_HighDeepPickReadonly<T>>;
54
54
  type _HighDeepPickReadonly<T, K extends keyof T = ReadonlyKeys<T>> =
55
- T extends (infer U)[] ? HighDeepPickReadonly<U>[]
55
+ T extends (infer U)[] ? _HighDeepPickReadonly<U>[]
56
56
  : IfNoDeepValue<T> extends true ? T
57
- : OmitNever<{ [P in K]: HighDeepPickReadonly<T[P]> }>;
57
+ : { [P in K]: _HighDeepPickReadonly<Exclude<T[P], undefined>> };
58
58
 
59
59
 
60
60
  /**
61
61
  * Pick all writable properties in T deeply
62
62
  */
63
- export type DeepPickWritable<T> = _DeepPickWritable<Exclude<T, undefined>>;
63
+ export type DeepPickWritable<T> = DeepOmitNever<_DeepPickWritable<T>>;
64
64
  type _DeepPickWritable<T, K extends keyof T = WritableKeys<T>> =
65
65
  IfNoDeepValue<T> extends true ? T
66
- : OmitNever<{ [P in K]: DeepPickWritable<T[P]> }>;
66
+ : { [P in K]: _DeepPickWritable<Exclude<T[P], undefined>> };
67
67
 
68
68
  /**
69
69
  * Pick all writable properties in T deeply including arrays
70
70
  */
71
- export type HighDeepPickWritable<T> = _HighDeepPickWritable<Exclude<T, undefined>>;
71
+ export type HighDeepPickWritable<T> = HighDeepOmitNever<_HighDeepPickWritable<T>>;
72
72
  type _HighDeepPickWritable<T, K extends keyof T = WritableKeys<T>> =
73
- T extends (infer U)[] ? HighDeepPickWritable<U>[]
73
+ T extends (infer U)[] ? _HighDeepPickWritable<U>[]
74
74
  : IfNoDeepValue<T> extends true ? T
75
- : OmitNever<{ [P in K]: HighDeepPickWritable<T[P]> }>;
75
+ : { [P in K]: _HighDeepPickWritable<Exclude<T[P], undefined>> };
76
76
 
77
77
 
78
78
  /**
79
79
  * Pick all JSON friendly properties in T deeply
80
80
  */
81
- export type DeepPickJson<T> = _DeepPickJson<Exclude<T, undefined>>;
81
+ export type DeepPickJson<T> = DeepOmitNever<_DeepPickJson<T>>;
82
82
  type _DeepPickJson<T, Keys extends keyof T = JsonKeys<T>> =
83
- T extends (infer U)[] ? DeepPickJson<U>[]
83
+ T extends (infer U)[] ? _DeepPickJson<U>[]
84
84
  : IfNoDeepValue<T> extends true ? T
85
- : OmitNever<{ [P in Keys]: DeepPickJson<T[P]> }>;
85
+ : { [P in Keys]: _DeepPickJson<Exclude<T[P], undefined>> };
@@ -1,20 +1,20 @@
1
+ import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
1
2
  import { IfNoDeepValue } from './helpers.js';
2
- import { OmitNever } from './omit.js';
3
3
 
4
4
  /**
5
5
  * Make all properties in T readonly deeply
6
6
  */
7
- export type DeepReadonly<T> = _DeepReadonly<T>;
7
+ export type DeepReadonly<T> = DeepOmitNever<_DeepReadonly<T>>;
8
8
  type _DeepReadonly<T> =
9
9
  IfNoDeepValue<T> extends true ? T
10
- : OmitNever<{ readonly [P in keyof T]: _DeepReadonly<T[P]> }>;
10
+ : { readonly [P in keyof T]: _DeepReadonly<T[P]> };
11
11
 
12
12
  /**
13
13
  * Make all properties in T readonly deeply
14
14
  */
15
- export type HighDeepReadonly<T> = _HighDeepReadonly<T>;
15
+ export type HighDeepReadonly<T> = HighDeepOmitNever<_HighDeepReadonly<T>>;
16
16
  type _HighDeepReadonly<T> =
17
17
  T extends (infer U)[] ? _HighDeepReadonly<U>[]
18
18
  : IfNoDeepValue<T> extends true ? T
19
- : OmitNever<{ readonly [P in keyof T]: _HighDeepReadonly<T[P]> }>;
19
+ : { readonly [P in keyof T]: _HighDeepReadonly<T[P]> };
20
20
 
@@ -1,20 +1,20 @@
1
+ import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
1
2
  import { IfNoDeepValue } from './helpers.js';
2
- import { OmitNever } from './omit.js';
3
3
 
4
4
  /**
5
5
  * Remove null from properties deeply
6
6
  */
7
- export type DeepRemoveNulls<T> = _DeepRemoveNulls<T>;
7
+ export type DeepRemoveNulls<T> = DeepOmitNever<_DeepRemoveNulls<T>>;
8
8
  type _DeepRemoveNulls<T> =
9
9
  IfNoDeepValue<T> extends true ? T
10
- : OmitNever<{ [P in keyof T]: _DeepRemoveNulls<Exclude<T[P], null>> }>;
10
+ : { [P in keyof T]: _DeepRemoveNulls<Exclude<T[P], null>> };
11
11
 
12
12
 
13
13
  /**
14
14
  * Remove null from properties deeply including arrays
15
15
  */
16
- export type HighDeepRemoveNulls<T> = _HighDeepRemoveNulls<T>;
16
+ export type HighDeepRemoveNulls<T> = HighDeepOmitNever<_HighDeepRemoveNulls<T>>;
17
17
  type _HighDeepRemoveNulls<T> =
18
18
  T extends (infer U)[] ? _HighDeepRemoveNulls<U>[]
19
19
  : IfNoDeepValue<T> extends true ? T
20
- : OmitNever<{ [P in keyof T]: _HighDeepRemoveNulls<Exclude<T[P], null>> }>;
20
+ : { [P in keyof T]: _HighDeepRemoveNulls<Exclude<T[P], null>> };
@@ -1,20 +1,20 @@
1
+ import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
1
2
  import { IfNoDeepValue } from './helpers.js';
2
- import { OmitNever } from './omit.js';
3
3
 
4
4
  /**
5
5
  * Make all properties in T required deeply
6
6
  */
7
- export type DeepRequired<T> = _DeepRequired<T>;
7
+ export type DeepRequired<T> = DeepOmitNever<_DeepRequired<T>>;
8
8
  type _DeepRequired<T> =
9
9
  IfNoDeepValue<T> extends true ? T
10
- : OmitNever<{ [P in keyof T]-?: _DeepRequired<Exclude<T[P], undefined>> }>;
10
+ : { [P in keyof T]-?: _DeepRequired<Exclude<T[P], undefined>> };
11
11
 
12
12
 
13
13
  /**
14
14
  * Make all properties in T required deeply including arrays
15
15
  */
16
- export type HighDeepRequired<T> = _HighDeepRequired<T>;
16
+ export type HighDeepRequired<T> = HighDeepOmitNever<_HighDeepRequired<T>>;
17
17
  type _HighDeepRequired<T> =
18
18
  T extends (infer U)[] ? _HighDeepRequired<U>[]
19
19
  : IfNoDeepValue<T> extends true ? T
20
- : OmitNever<{ [P in keyof T]-?: _HighDeepRequired<Exclude<T[P], undefined>> }>;
20
+ : { [P in keyof T]-?: _HighDeepRequired<Exclude<T[P], undefined>> };
@@ -1,20 +1,20 @@
1
+ import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
1
2
  import { IfNoDeepValue } from './helpers.js';
2
- import { OmitNever } from './omit.js';
3
3
 
4
4
  /**
5
5
  * Make all properties in T writable deeply
6
6
  */
7
- export type DeepWritable<T> = _DeepWritable<T>;
7
+ export type DeepWritable<T> = DeepOmitNever<_DeepWritable<T>>;
8
8
  type _DeepWritable<T> =
9
9
  IfNoDeepValue<T> extends true ? T
10
- : OmitNever<{ -readonly [P in keyof T]: _DeepWritable<T[P]> }>;
10
+ : { -readonly [P in keyof T]: _DeepWritable<T[P]> };
11
11
 
12
12
 
13
13
  /**
14
14
  * Make all properties in T writable deeply including arrays
15
15
  */
16
- export type HighDeepWritable<T> = _HighDeepWritable<T>;
16
+ export type HighDeepWritable<T> = HighDeepOmitNever<_HighDeepWritable<T>>;
17
17
  type _HighDeepWritable<T> =
18
18
  T extends (infer U)[] ? _HighDeepWritable<U>[]
19
19
  : IfNoDeepValue<T> extends true ? T
20
- : OmitNever<{ -readonly [P in keyof T]: _HighDeepWritable<T[P]> }>;
20
+ : { -readonly [P in keyof T]: _HighDeepWritable<T[P]> };
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "lodash",
13
13
  "underscore"
14
14
  ],
15
- "version": "2.9.0",
15
+ "version": "2.9.2",
16
16
  "types": "lib/index.d.ts",
17
17
  "main": "lib/index.js",
18
18
  "module": "lib/index.js",