ts-gems 2.9.2 → 2.9.3
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/deep-buildable.d.ts +6 -6
- package/lib/deep-nullish.d.ts +5 -4
- package/lib/deep-omit.d.ts +16 -11
- package/lib/deep-partial.d.ts +4 -3
- package/lib/deep-pick.d.ts +14 -10
- package/lib/deep-readonly.d.ts +5 -4
- package/lib/deep-remove-nulls.d.ts +5 -4
- package/lib/deep-required.d.ts +5 -4
- package/lib/deep-writable.d.ts +5 -4
- package/lib/helpers.d.ts +14 -13
- package/lib/modify.d.ts +1 -1
- package/package.json +1 -1
package/lib/deep-buildable.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit
|
|
2
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit';
|
|
2
|
+
import { IfNoDeepValue } from './helpers';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Combination of Partial and Writable but deeply
|
|
6
6
|
*/
|
|
7
7
|
export type DeepBuildable<T> = DeepOmitNever<_DeepBuildable<T>>;
|
|
8
8
|
type _DeepBuildable<T> =
|
|
9
|
-
|
|
10
|
-
:
|
|
9
|
+
T extends any[] ? T
|
|
10
|
+
: IfNoDeepValue<T> extends true ? T
|
|
11
|
+
: { -readonly [P in keyof T]?: _DeepBuildable<Exclude<T[P], undefined>> };
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Combination of Partial and Writable but deeply including arrays
|
|
@@ -16,5 +17,4 @@ export type HighDeepBuildable<T> = HighDeepOmitNever<_HighDeepBuildable<T>>;
|
|
|
16
17
|
type _HighDeepBuildable<T> =
|
|
17
18
|
T extends (infer U)[] ? _HighDeepBuildable<U>[]
|
|
18
19
|
: IfNoDeepValue<T> extends true ? T
|
|
19
|
-
:
|
|
20
|
-
: { -readonly [P in keyof T]?: _HighDeepBuildable<Exclude<T[P], undefined>> };
|
|
20
|
+
: { -readonly [P in keyof T]?: _HighDeepBuildable<Exclude<T[P], undefined>> };
|
package/lib/deep-nullish.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { DeepRequired, HighDeepRequired } from './deep-required
|
|
2
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { DeepRequired, HighDeepRequired } from './deep-required';
|
|
2
|
+
import { IfNoDeepValue } from './helpers';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Make all properties in T nullable deeply
|
|
6
6
|
*/
|
|
7
7
|
export type DeepNullish<T> = _DeepNullish<DeepRequired<T>>;
|
|
8
8
|
type _DeepNullish<T> =
|
|
9
|
-
|
|
10
|
-
:
|
|
9
|
+
T extends any[] ? T
|
|
10
|
+
: IfNoDeepValue<T> extends true ? T
|
|
11
|
+
: { [P in keyof T]?: _DeepNullish<Exclude<T[P], undefined>> | null };
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
/**
|
package/lib/deep-omit.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { IfNoDeepValue } from './helpers';
|
|
2
2
|
import { OptionalKeys, ReadonlyKeys, RequiredKeys, WritableKeys } from './keys';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -6,8 +6,9 @@ import { OptionalKeys, ReadonlyKeys, RequiredKeys, WritableKeys } from './keys';
|
|
|
6
6
|
*/
|
|
7
7
|
export type DeepOmitOptional<T> = DeepOmitNever<_DeepOmitOptional<T>>;
|
|
8
8
|
type _DeepOmitOptional<T, K extends keyof T = Exclude<keyof T, OptionalKeys<T>>> =
|
|
9
|
-
|
|
10
|
-
:
|
|
9
|
+
T extends any[] ? T
|
|
10
|
+
: IfNoDeepValue<T> extends true ? T
|
|
11
|
+
: { [P in K]-?: _DeepOmitOptional<Exclude<T[P], undefined>> };
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Omit all optional properties in T deeply including arrays
|
|
@@ -24,8 +25,9 @@ type _HighDeepOmitOptional<T, K extends keyof T = Exclude<keyof T, OptionalKeys<
|
|
|
24
25
|
*/
|
|
25
26
|
export type DeepOmitRequired<T> = DeepOmitNever<_DeepOmitRequired<T>>;
|
|
26
27
|
type _DeepOmitRequired<T, J extends keyof T = Exclude<keyof T, RequiredKeys<T>>> =
|
|
27
|
-
|
|
28
|
-
:
|
|
28
|
+
T extends any[] ? T
|
|
29
|
+
: IfNoDeepValue<T> extends true ? T
|
|
30
|
+
: { [P in J]?: _DeepOmitRequired<Exclude<T[P], undefined>> };
|
|
29
31
|
|
|
30
32
|
|
|
31
33
|
/**
|
|
@@ -43,8 +45,9 @@ type _HighDeepOmitRequired<T, J extends keyof T = Exclude<keyof T, RequiredKeys<
|
|
|
43
45
|
*/
|
|
44
46
|
export type DeepOmitReadonly<T> = DeepOmitNever<_DeepOmitReadonly<Exclude<T, undefined>>>;
|
|
45
47
|
type _DeepOmitReadonly<T, J extends keyof T = Exclude<keyof T, ReadonlyKeys<T>>> =
|
|
46
|
-
|
|
47
|
-
:
|
|
48
|
+
T extends any[] ? T
|
|
49
|
+
: IfNoDeepValue<T> extends true ? T
|
|
50
|
+
: { [P in J]: _DeepOmitReadonly<Exclude<T[P], undefined>> };
|
|
48
51
|
|
|
49
52
|
|
|
50
53
|
/**
|
|
@@ -62,8 +65,9 @@ type _HighDeepOmitReadonly<T, J extends keyof T = Exclude<keyof T, ReadonlyKeys<
|
|
|
62
65
|
*/
|
|
63
66
|
export type DeepOmitWritable<T> = DeepOmitNever<_DeepOmitWritable<T>>
|
|
64
67
|
type _DeepOmitWritable<T, K extends keyof T = Exclude<keyof T, WritableKeys<T>>> =
|
|
65
|
-
|
|
66
|
-
:
|
|
68
|
+
T extends any[] ? T
|
|
69
|
+
: IfNoDeepValue<T> extends true ? T
|
|
70
|
+
: { readonly [P in K]: _DeepOmitWritable<Exclude<T[P], undefined>> }
|
|
67
71
|
|
|
68
72
|
|
|
69
73
|
/**
|
|
@@ -80,8 +84,9 @@ type _HighDeepOmitWritable<T, K extends keyof T = Exclude<keyof T, WritableKeys<
|
|
|
80
84
|
*/
|
|
81
85
|
export type DeepOmitNever<T> = _DeepOmitNever<T>
|
|
82
86
|
type _DeepOmitNever<T> =
|
|
83
|
-
|
|
84
|
-
:
|
|
87
|
+
T extends any[] ? T
|
|
88
|
+
: IfNoDeepValue<T> extends true ? T
|
|
89
|
+
: { [P in keyof T as (Exclude<T[P], undefined> extends never ? never : P)]: _DeepOmitNever<Exclude<T[P], undefined>> }
|
|
85
90
|
|
|
86
91
|
|
|
87
92
|
/**
|
package/lib/deep-partial.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { IfNoDeepValue } from './helpers';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Partial but deeply
|
|
5
5
|
*/
|
|
6
6
|
export type DeepPartial<T> = _DeepPartial<T>;
|
|
7
7
|
type _DeepPartial<T> =
|
|
8
|
-
|
|
9
|
-
:
|
|
8
|
+
T extends any[] ? T
|
|
9
|
+
: IfNoDeepValue<T> extends true ? T
|
|
10
|
+
: { [P in keyof T]?: _DeepPartial<Exclude<T[P], undefined>> };
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Partial but deeply including arrays
|
package/lib/deep-pick.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit
|
|
2
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit';
|
|
2
|
+
import { IfNoDeepValue } from './helpers';
|
|
3
3
|
import { JsonKeys, OptionalKeys, ReadonlyKeys, RequiredKeys, WritableKeys } from './keys';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -7,8 +7,9 @@ import { JsonKeys, OptionalKeys, ReadonlyKeys, RequiredKeys, WritableKeys } from
|
|
|
7
7
|
*/
|
|
8
8
|
export type DeepPickOptional<T> = DeepOmitNever<_DeepPickOptional<T>>;
|
|
9
9
|
type _DeepPickOptional<T, K extends keyof T = OptionalKeys<T>> =
|
|
10
|
-
|
|
11
|
-
:
|
|
10
|
+
T extends any[] ? T
|
|
11
|
+
: IfNoDeepValue<T> extends true ? T
|
|
12
|
+
: { [P in K]?: _DeepPickOptional<Exclude<T[P], undefined>> };
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Pick all optional properties in T deeply including arrays
|
|
@@ -25,8 +26,9 @@ type _HighDeepPickOptional<T, K extends keyof T = OptionalKeys<T>> =
|
|
|
25
26
|
*/
|
|
26
27
|
export type DeepPickRequired<T> = DeepOmitNever<_DeepPickRequired<T>>;
|
|
27
28
|
type _DeepPickRequired<T, J extends keyof T = RequiredKeys<T>> =
|
|
28
|
-
|
|
29
|
-
:
|
|
29
|
+
T extends any[] ? T
|
|
30
|
+
: IfNoDeepValue<T> extends true ? T
|
|
31
|
+
: { [P in J]-?: _DeepPickRequired<Exclude<T[P], undefined>> };
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
/**
|
|
@@ -44,8 +46,9 @@ type _HighDeepPickRequired<T, J extends keyof T = RequiredKeys<T>> =
|
|
|
44
46
|
*/
|
|
45
47
|
export type DeepPickReadonly<T> = DeepOmitNever<_DeepPickReadonly<T>>;
|
|
46
48
|
type _DeepPickReadonly<T, K extends keyof T = ReadonlyKeys<T>> =
|
|
47
|
-
|
|
48
|
-
:
|
|
49
|
+
T extends any[] ? T
|
|
50
|
+
: IfNoDeepValue<T> extends true ? T
|
|
51
|
+
: { [P in K]: _DeepPickReadonly<Exclude<T[P], undefined>> };
|
|
49
52
|
|
|
50
53
|
/**
|
|
51
54
|
* Pick all readonly properties in T deeply including arrays
|
|
@@ -62,8 +65,9 @@ type _HighDeepPickReadonly<T, K extends keyof T = ReadonlyKeys<T>> =
|
|
|
62
65
|
*/
|
|
63
66
|
export type DeepPickWritable<T> = DeepOmitNever<_DeepPickWritable<T>>;
|
|
64
67
|
type _DeepPickWritable<T, K extends keyof T = WritableKeys<T>> =
|
|
65
|
-
|
|
66
|
-
:
|
|
68
|
+
T extends any[] ? T
|
|
69
|
+
: IfNoDeepValue<T> extends true ? T
|
|
70
|
+
: { [P in K]: _DeepPickWritable<Exclude<T[P], undefined>> };
|
|
67
71
|
|
|
68
72
|
/**
|
|
69
73
|
* Pick all writable properties in T deeply including arrays
|
package/lib/deep-readonly.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit
|
|
2
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit';
|
|
2
|
+
import { IfNoDeepValue } from './helpers';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Make all properties in T readonly deeply
|
|
6
6
|
*/
|
|
7
7
|
export type DeepReadonly<T> = DeepOmitNever<_DeepReadonly<T>>;
|
|
8
8
|
type _DeepReadonly<T> =
|
|
9
|
-
|
|
10
|
-
:
|
|
9
|
+
T extends any[] ? T
|
|
10
|
+
: IfNoDeepValue<T> extends true ? T
|
|
11
|
+
: { readonly [P in keyof T]: _DeepReadonly<T[P]> };
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Make all properties in T readonly deeply
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit
|
|
2
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit';
|
|
2
|
+
import { IfNoDeepValue } from './helpers';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Remove null from properties deeply
|
|
6
6
|
*/
|
|
7
7
|
export type DeepRemoveNulls<T> = DeepOmitNever<_DeepRemoveNulls<T>>;
|
|
8
8
|
type _DeepRemoveNulls<T> =
|
|
9
|
-
|
|
10
|
-
:
|
|
9
|
+
T extends any[] ? T
|
|
10
|
+
: IfNoDeepValue<T> extends true ? T
|
|
11
|
+
: { [P in keyof T]: _DeepRemoveNulls<Exclude<T[P], null>> };
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
/**
|
package/lib/deep-required.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit
|
|
2
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit';
|
|
2
|
+
import { IfNoDeepValue } from './helpers';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Make all properties in T required deeply
|
|
6
6
|
*/
|
|
7
7
|
export type DeepRequired<T> = DeepOmitNever<_DeepRequired<T>>;
|
|
8
8
|
type _DeepRequired<T> =
|
|
9
|
-
|
|
10
|
-
:
|
|
9
|
+
T extends any[] ? T
|
|
10
|
+
: IfNoDeepValue<T> extends true ? T
|
|
11
|
+
: { [P in keyof T]-?: _DeepRequired<Exclude<T[P], undefined>> };
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
/**
|
package/lib/deep-writable.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit
|
|
2
|
-
import { IfNoDeepValue } from './helpers
|
|
1
|
+
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit';
|
|
2
|
+
import { IfNoDeepValue } from './helpers';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Make all properties in T writable deeply
|
|
6
6
|
*/
|
|
7
7
|
export type DeepWritable<T> = DeepOmitNever<_DeepWritable<T>>;
|
|
8
8
|
type _DeepWritable<T> =
|
|
9
|
-
|
|
10
|
-
:
|
|
9
|
+
T extends any[] ? T
|
|
10
|
+
: IfNoDeepValue<T> extends true ? T
|
|
11
|
+
: { -readonly [P in keyof T]: _DeepWritable<T[P]> };
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
/**
|
package/lib/helpers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Builtin } from './common
|
|
2
|
-
import { IfClass, IfTuple } from './type-check
|
|
1
|
+
import { Builtin } from './common';
|
|
2
|
+
import { IfAny, IfClass, IfTuple } from './type-check';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Returns true if T is excluded from deep operations
|
|
@@ -7,14 +7,15 @@ import { IfClass, IfTuple } from './type-check.js';
|
|
|
7
7
|
export type IfNoDeepValue<T> = _IfNoDeepValue<T>
|
|
8
8
|
type _IfNoDeepValue<T> =
|
|
9
9
|
T extends Builtin ? true
|
|
10
|
-
:
|
|
11
|
-
: T extends
|
|
12
|
-
:
|
|
13
|
-
: T extends
|
|
14
|
-
: T extends
|
|
15
|
-
: T extends
|
|
16
|
-
: T extends
|
|
17
|
-
: T extends
|
|
18
|
-
: T extends
|
|
19
|
-
: T extends any
|
|
20
|
-
:
|
|
10
|
+
: IfAny<T> extends true ? T
|
|
11
|
+
: IfTuple<T> extends true ? true
|
|
12
|
+
: T extends Function ? true
|
|
13
|
+
: IfClass<T> extends true ? true
|
|
14
|
+
: T extends Map<any, any> ? true
|
|
15
|
+
: T extends ReadonlyMap<any, any> ? true
|
|
16
|
+
: T extends WeakMap<any, any> ? true
|
|
17
|
+
: T extends Set<any> ? true
|
|
18
|
+
: T extends ReadonlySet<any> ? true
|
|
19
|
+
: T extends WeakSet<any> ? true
|
|
20
|
+
// : T extends any[] ? true
|
|
21
|
+
: false;
|
package/lib/modify.d.ts
CHANGED