ts-gems 2.9.2 → 3.0.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/combine.d.ts +7 -0
- package/lib/helpers.d.ts +23 -15
- package/lib/index.d.ts +13 -14
- package/lib/logical.d.ts +19 -0
- package/lib/mutable.d.ts +84 -0
- package/lib/nullish.d.ts +34 -0
- package/lib/omit-never.d.ts +49 -0
- package/lib/omit.d.ts +37 -48
- package/lib/opaque.ts +12 -0
- package/lib/partial.d.ts +78 -0
- package/lib/pick.d.ts +77 -17
- package/lib/readonly.d.ts +143 -0
- package/lib/required.d.ts +145 -0
- package/lib/type-check.d.ts +20 -38
- package/lib/{common.d.ts → types.d.ts} +14 -45
- package/package.json +1 -1
- package/lib/deep-buildable.d.ts +0 -20
- package/lib/deep-nullish.d.ts +0 -21
- package/lib/deep-omit.d.ts +0 -94
- package/lib/deep-partial.d.ts +0 -18
- package/lib/deep-pick.d.ts +0 -85
- package/lib/deep-readonly.d.ts +0 -20
- package/lib/deep-remove-nulls.d.ts +0 -20
- package/lib/deep-required.d.ts +0 -20
- package/lib/deep-writable.d.ts +0 -20
- package/lib/keys.d.ts +0 -118
- package/lib/modify.d.ts +0 -45
package/lib/deep-pick.d.ts
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
|
|
2
|
-
import { IfNoDeepValue } from './helpers.js';
|
|
3
|
-
import { JsonKeys, OptionalKeys, ReadonlyKeys, RequiredKeys, WritableKeys } from './keys';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Pick all optional properties in T deeply
|
|
7
|
-
*/
|
|
8
|
-
export type DeepPickOptional<T> = DeepOmitNever<_DeepPickOptional<T>>;
|
|
9
|
-
type _DeepPickOptional<T, K extends keyof T = OptionalKeys<T>> =
|
|
10
|
-
IfNoDeepValue<T> extends true ? T
|
|
11
|
-
: { [P in K]?: _DeepPickOptional<Exclude<T[P], undefined>> };
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Pick all optional properties in T deeply including arrays
|
|
15
|
-
*/
|
|
16
|
-
export type HighDeepPickOptional<T> = HighDeepOmitNever<_HighDeepPickOptional<T>>;
|
|
17
|
-
type _HighDeepPickOptional<T, K extends keyof T = OptionalKeys<T>> =
|
|
18
|
-
T extends (infer U)[] ? _HighDeepPickOptional<U>[]
|
|
19
|
-
: IfNoDeepValue<T> extends true ? T
|
|
20
|
-
: { [P in K]?: _HighDeepPickOptional<Exclude<T[P], undefined>> };
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Pick all required properties in T deeply
|
|
25
|
-
*/
|
|
26
|
-
export type DeepPickRequired<T> = DeepOmitNever<_DeepPickRequired<T>>;
|
|
27
|
-
type _DeepPickRequired<T, J extends keyof T = RequiredKeys<T>> =
|
|
28
|
-
IfNoDeepValue<T> extends true ? T
|
|
29
|
-
: { [P in J]-?: _DeepPickRequired<Exclude<T[P], undefined>> };
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Pick all required properties in T deeply including arrays
|
|
34
|
-
*/
|
|
35
|
-
export type HighDeepPickRequired<T> = HighDeepOmitNever<_HighDeepPickRequired<T>>;
|
|
36
|
-
type _HighDeepPickRequired<T, J extends keyof T = RequiredKeys<T>> =
|
|
37
|
-
T extends (infer U)[] ? _HighDeepPickRequired<U>[]
|
|
38
|
-
: IfNoDeepValue<T> extends true ? T
|
|
39
|
-
: { [P in J]-?: _HighDeepPickRequired<Exclude<T[P], undefined>> };
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Pick all readonly properties in T deeply
|
|
44
|
-
*/
|
|
45
|
-
export type DeepPickReadonly<T> = DeepOmitNever<_DeepPickReadonly<T>>;
|
|
46
|
-
type _DeepPickReadonly<T, K extends keyof T = ReadonlyKeys<T>> =
|
|
47
|
-
IfNoDeepValue<T> extends true ? T
|
|
48
|
-
: { [P in K]: _DeepPickReadonly<Exclude<T[P], undefined>> };
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Pick all readonly properties in T deeply including arrays
|
|
52
|
-
*/
|
|
53
|
-
export type HighDeepPickReadonly<T> = HighDeepOmitNever<_HighDeepPickReadonly<T>>;
|
|
54
|
-
type _HighDeepPickReadonly<T, K extends keyof T = ReadonlyKeys<T>> =
|
|
55
|
-
T extends (infer U)[] ? _HighDeepPickReadonly<U>[]
|
|
56
|
-
: IfNoDeepValue<T> extends true ? T
|
|
57
|
-
: { [P in K]: _HighDeepPickReadonly<Exclude<T[P], undefined>> };
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Pick all writable properties in T deeply
|
|
62
|
-
*/
|
|
63
|
-
export type DeepPickWritable<T> = DeepOmitNever<_DeepPickWritable<T>>;
|
|
64
|
-
type _DeepPickWritable<T, K extends keyof T = WritableKeys<T>> =
|
|
65
|
-
IfNoDeepValue<T> extends true ? T
|
|
66
|
-
: { [P in K]: _DeepPickWritable<Exclude<T[P], undefined>> };
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Pick all writable properties in T deeply including arrays
|
|
70
|
-
*/
|
|
71
|
-
export type HighDeepPickWritable<T> = HighDeepOmitNever<_HighDeepPickWritable<T>>;
|
|
72
|
-
type _HighDeepPickWritable<T, K extends keyof T = WritableKeys<T>> =
|
|
73
|
-
T extends (infer U)[] ? _HighDeepPickWritable<U>[]
|
|
74
|
-
: IfNoDeepValue<T> extends true ? T
|
|
75
|
-
: { [P in K]: _HighDeepPickWritable<Exclude<T[P], undefined>> };
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Pick all JSON friendly properties in T deeply
|
|
80
|
-
*/
|
|
81
|
-
export type DeepPickJson<T> = DeepOmitNever<_DeepPickJson<T>>;
|
|
82
|
-
type _DeepPickJson<T, Keys extends keyof T = JsonKeys<T>> =
|
|
83
|
-
T extends (infer U)[] ? _DeepPickJson<U>[]
|
|
84
|
-
: IfNoDeepValue<T> extends true ? T
|
|
85
|
-
: { [P in Keys]: _DeepPickJson<Exclude<T[P], undefined>> };
|
package/lib/deep-readonly.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
|
|
2
|
-
import { IfNoDeepValue } from './helpers.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Make all properties in T readonly deeply
|
|
6
|
-
*/
|
|
7
|
-
export type DeepReadonly<T> = DeepOmitNever<_DeepReadonly<T>>;
|
|
8
|
-
type _DeepReadonly<T> =
|
|
9
|
-
IfNoDeepValue<T> extends true ? T
|
|
10
|
-
: { readonly [P in keyof T]: _DeepReadonly<T[P]> };
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Make all properties in T readonly deeply
|
|
14
|
-
*/
|
|
15
|
-
export type HighDeepReadonly<T> = HighDeepOmitNever<_HighDeepReadonly<T>>;
|
|
16
|
-
type _HighDeepReadonly<T> =
|
|
17
|
-
T extends (infer U)[] ? _HighDeepReadonly<U>[]
|
|
18
|
-
: IfNoDeepValue<T> extends true ? T
|
|
19
|
-
: { readonly [P in keyof T]: _HighDeepReadonly<T[P]> };
|
|
20
|
-
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
|
|
2
|
-
import { IfNoDeepValue } from './helpers.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Remove null from properties deeply
|
|
6
|
-
*/
|
|
7
|
-
export type DeepRemoveNulls<T> = DeepOmitNever<_DeepRemoveNulls<T>>;
|
|
8
|
-
type _DeepRemoveNulls<T> =
|
|
9
|
-
IfNoDeepValue<T> extends true ? T
|
|
10
|
-
: { [P in keyof T]: _DeepRemoveNulls<Exclude<T[P], null>> };
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Remove null from properties deeply including arrays
|
|
15
|
-
*/
|
|
16
|
-
export type HighDeepRemoveNulls<T> = HighDeepOmitNever<_HighDeepRemoveNulls<T>>;
|
|
17
|
-
type _HighDeepRemoveNulls<T> =
|
|
18
|
-
T extends (infer U)[] ? _HighDeepRemoveNulls<U>[]
|
|
19
|
-
: IfNoDeepValue<T> extends true ? T
|
|
20
|
-
: { [P in keyof T]: _HighDeepRemoveNulls<Exclude<T[P], null>> };
|
package/lib/deep-required.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
|
|
2
|
-
import { IfNoDeepValue } from './helpers.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Make all properties in T required deeply
|
|
6
|
-
*/
|
|
7
|
-
export type DeepRequired<T> = DeepOmitNever<_DeepRequired<T>>;
|
|
8
|
-
type _DeepRequired<T> =
|
|
9
|
-
IfNoDeepValue<T> extends true ? T
|
|
10
|
-
: { [P in keyof T]-?: _DeepRequired<Exclude<T[P], undefined>> };
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Make all properties in T required deeply including arrays
|
|
15
|
-
*/
|
|
16
|
-
export type HighDeepRequired<T> = HighDeepOmitNever<_HighDeepRequired<T>>;
|
|
17
|
-
type _HighDeepRequired<T> =
|
|
18
|
-
T extends (infer U)[] ? _HighDeepRequired<U>[]
|
|
19
|
-
: IfNoDeepValue<T> extends true ? T
|
|
20
|
-
: { [P in keyof T]-?: _HighDeepRequired<Exclude<T[P], undefined>> };
|
package/lib/deep-writable.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DeepOmitNever, HighDeepOmitNever } from './deep-omit.js';
|
|
2
|
-
import { IfNoDeepValue } from './helpers.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Make all properties in T writable deeply
|
|
6
|
-
*/
|
|
7
|
-
export type DeepWritable<T> = DeepOmitNever<_DeepWritable<T>>;
|
|
8
|
-
type _DeepWritable<T> =
|
|
9
|
-
IfNoDeepValue<T> extends true ? T
|
|
10
|
-
: { -readonly [P in keyof T]: _DeepWritable<T[P]> };
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Make all properties in T writable deeply including arrays
|
|
15
|
-
*/
|
|
16
|
-
export type HighDeepWritable<T> = HighDeepOmitNever<_HighDeepWritable<T>>;
|
|
17
|
-
type _HighDeepWritable<T> =
|
|
18
|
-
T extends (infer U)[] ? _HighDeepWritable<U>[]
|
|
19
|
-
: IfNoDeepValue<T> extends true ? T
|
|
20
|
-
: { -readonly [P in keyof T]: _HighDeepWritable<T[P]> };
|
package/lib/keys.d.ts
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
IfEquals, IfCompatible, IfUndefined,
|
|
3
|
-
IfJson, IfNull, IfFunction
|
|
4
|
-
} from './type-check';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* KeyOf
|
|
8
|
-
* @desc Returns the union type of all the keys in a type
|
|
9
|
-
*/
|
|
10
|
-
export type KeysOf<T> = keyof T;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* ValuesOf
|
|
14
|
-
* @desc Returns the union type of all the values in a type
|
|
15
|
-
*/
|
|
16
|
-
export type ValuesOf<T> = T[keyof T];
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* RequiredKeys
|
|
20
|
-
* @desc Returns required keys of an object
|
|
21
|
-
*/
|
|
22
|
-
export type RequiredKeys<T> = _RequiredKeys<T>
|
|
23
|
-
export type _RequiredKeys<T> = ValuesOf<{
|
|
24
|
-
[K in keyof T]-?: IfUndefined<T[K]> extends true ? never
|
|
25
|
-
: T extends { [K1 in K]: any } ? K
|
|
26
|
-
: never
|
|
27
|
-
}>;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* OptionalKeys
|
|
31
|
-
* @desc Returns optional keys of an object
|
|
32
|
-
*/
|
|
33
|
-
export type OptionalKeys<T> = _OptionalKeys<T>
|
|
34
|
-
export type _OptionalKeys<T> = ValuesOf<{
|
|
35
|
-
[K in keyof T]-?: IfUndefined<T[K]> extends true ? never
|
|
36
|
-
: T extends { [K1 in K]: any } ? never
|
|
37
|
-
: K
|
|
38
|
-
}>;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @desc Returns readonly keys of an object
|
|
43
|
-
*/
|
|
44
|
-
export type ReadonlyKeys<T> = _ReadonlyKeys<T>
|
|
45
|
-
type _ReadonlyKeys<T, J = Required<T>> = ValuesOf<{
|
|
46
|
-
[K in keyof J]: K extends symbol ? never
|
|
47
|
-
: IfEquals<{ [Q in K]: J[K] }, { -readonly [Q in K]: J[K] }, never, K>
|
|
48
|
-
}>;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* @desc Returns JSON friendly keys of an object
|
|
52
|
-
*/
|
|
53
|
-
export type JsonKeys<T> = _JsonKeys<T>;
|
|
54
|
-
type _JsonKeys<T, J = Required<T>> = ValuesOf<{
|
|
55
|
-
[K in keyof J]: K extends symbol ? never
|
|
56
|
-
: IfNull<J[K]> extends true ? K
|
|
57
|
-
: IfJson<Exclude<J[K], undefined>> extends true ? K
|
|
58
|
-
: never
|
|
59
|
-
}>;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @desc Returns writable keys of an object
|
|
63
|
-
*/
|
|
64
|
-
export type WritableKeys<T> = _WritableKeys<T>;
|
|
65
|
-
type _WritableKeys<T> = ValuesOf<{
|
|
66
|
-
[K in keyof T]-?: K extends symbol ? never
|
|
67
|
-
: IfEquals<{ [Q in K]: T[K] }, { readonly [Q in K]: T[K] }, never, K>
|
|
68
|
-
}>;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* @desc Returns writable json keys of an object
|
|
73
|
-
*/
|
|
74
|
-
export type WritableJsonKeys<T> = Extract<WritableKeys<T>, JsonKeys<T>>;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* @desc Returns Function keys of an object
|
|
78
|
-
*/
|
|
79
|
-
export type FunctionKeys<T> = _FunctionKeys<T>;
|
|
80
|
-
type _FunctionKeys<T> = ValuesOf<{
|
|
81
|
-
[K in keyof T]-?: K extends symbol ? never
|
|
82
|
-
: IfFunction<T[K]> extends true ? K : never;
|
|
83
|
-
}>;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* @desc Returns non function keys of an object
|
|
87
|
-
*/
|
|
88
|
-
export type NonFunctionKeys<T> = _NonFunctionKeys<T>;
|
|
89
|
-
type _NonFunctionKeys<T> = ValuesOf<{
|
|
90
|
-
[K in keyof T]-?: K extends symbol ? never
|
|
91
|
-
: IfFunction<T[K]> extends true ? never : K;
|
|
92
|
-
}>;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* @desc Returns keys that match given type
|
|
97
|
-
*/
|
|
98
|
-
export type KeysCompatible<T, U> = _KeysCompatible<T, U>;
|
|
99
|
-
type _KeysCompatible<T, U> = ValuesOf<{
|
|
100
|
-
[K in keyof T]-?: K extends symbol ? never
|
|
101
|
-
: IfCompatible<T[K], U, K, never>;
|
|
102
|
-
}>;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* @desc Returns keys that equals given type
|
|
106
|
-
*/
|
|
107
|
-
export type KeysEquals<T, U> = _KeysEquals<T, U>;
|
|
108
|
-
type _KeysEquals<T, U> = ValuesOf<{
|
|
109
|
-
[K in keyof T]-?: K extends symbol ? never
|
|
110
|
-
: IfEquals<T[K], U, K, never>;
|
|
111
|
-
}>;
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* @desc Returns keys that property value type is not "never"
|
|
115
|
-
*/
|
|
116
|
-
export type NonNeverKeys<T> = ValuesOf<{
|
|
117
|
-
[K in keyof T]: K
|
|
118
|
-
}>;
|
package/lib/modify.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { OmitNever } from './omit.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Make all properties in T writable
|
|
5
|
-
*/
|
|
6
|
-
export type Writable<T> = {
|
|
7
|
-
-readonly [P in keyof T]: T[P];
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Combination of Partial and Writable
|
|
12
|
-
*/
|
|
13
|
-
export type Buildable<T> = Partial<Writable<T>>;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Marks given keys as optional
|
|
17
|
-
*/
|
|
18
|
-
export type PartialSome<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Marks given keys as required
|
|
22
|
-
*/
|
|
23
|
-
export type RequiredSome<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Marks given keys as readonly
|
|
27
|
-
*/
|
|
28
|
-
export type ReadonlySome<T, K extends keyof T> = Readonly<Pick<T, K>> & Omit<T, K>;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Marks given keys as writable
|
|
32
|
-
*/
|
|
33
|
-
export type WritableSome<T, K extends keyof T> = Writable<Pick<T, K>> & Omit<T, K>;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Merges two types without merging types of elements.
|
|
37
|
-
*/
|
|
38
|
-
export type Combine<A, B> = A & Exclude<B, keyof A>;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Remove null from properties
|
|
42
|
-
*/
|
|
43
|
-
export type RemoveNulls<T> = OmitNever<{
|
|
44
|
-
[P in keyof T]: Exclude<T[P], null>;
|
|
45
|
-
}>;
|