type-fest 4.8.0 → 4.8.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/package.json
CHANGED
|
@@ -50,17 +50,15 @@ export type DelimiterCasedPropertiesDeep<
|
|
|
50
50
|
Delimiter extends string,
|
|
51
51
|
> = Value extends Function | Date | RegExp
|
|
52
52
|
? Value
|
|
53
|
-
: Value extends
|
|
54
|
-
?
|
|
55
|
-
: Value extends
|
|
56
|
-
?
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
>]: DelimiterCasedPropertiesDeep<Value[K], Delimiter>;
|
|
63
|
-
};
|
|
53
|
+
: Value extends UnknownArray
|
|
54
|
+
? DelimiterCasedPropertiesArrayDeep<Value, Delimiter>
|
|
55
|
+
: Value extends Set<infer U>
|
|
56
|
+
? Set<DelimiterCasedPropertiesDeep<U, Delimiter>> : {
|
|
57
|
+
[K in keyof Value as DelimiterCase<
|
|
58
|
+
K,
|
|
59
|
+
Delimiter
|
|
60
|
+
>]: DelimiterCasedPropertiesDeep<Value[K], Delimiter>;
|
|
61
|
+
};
|
|
64
62
|
|
|
65
63
|
type DelimiterCasedPropertiesArrayDeep<Value extends UnknownArray, Delimiter extends string> =
|
|
66
64
|
Value extends []
|
package/source/internal.d.ts
CHANGED
|
@@ -67,9 +67,9 @@ export type Subtract<A extends number, B extends number> = BuildTuple<A> extends
|
|
|
67
67
|
: never;
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
|
-
Matches any primitive, `Date`, `RegExp
|
|
70
|
+
Matches any primitive, `Date`, or `RegExp` value.
|
|
71
71
|
*/
|
|
72
|
-
export type BuiltIns = Primitive | Date | RegExp
|
|
72
|
+
export type BuiltIns = Primitive | Date | RegExp;
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
75
|
Matches non-recursive types.
|
package/source/join.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ const path: Join<['hello' | undefined, 'world' | null], '.'> = ['hello', 'world'
|
|
|
51
51
|
export type Join<
|
|
52
52
|
Items extends readonly JoinableItem[],
|
|
53
53
|
Delimiter extends string,
|
|
54
|
-
> = Items extends []
|
|
54
|
+
> = Items extends readonly []
|
|
55
55
|
? ''
|
|
56
56
|
: Items extends readonly [JoinableItem?]
|
|
57
57
|
? `${NullishCoalesce<Items[0], ''>}`
|
package/source/jsonify.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type {IsNever} from './is-never';
|
|
|
6
6
|
import type {IsUnknown} from './is-unknown';
|
|
7
7
|
import type {NegativeInfinity, PositiveInfinity} from './numeric';
|
|
8
8
|
import type {TypedArray} from './typed-array';
|
|
9
|
-
import type {
|
|
9
|
+
import type {UnknownArray} from './unknown-array';
|
|
10
10
|
|
|
11
11
|
// Note: The return value has to be `any` and not `unknown` so it can match `void`.
|
|
12
12
|
type NotJsonable = ((...arguments_: any[]) => any) | undefined | symbol;
|
|
@@ -14,9 +14,9 @@ type NotJsonable = ((...arguments_: any[]) => any) | undefined | symbol;
|
|
|
14
14
|
type NeverToNull<T> = IsNever<T> extends true ? null : T;
|
|
15
15
|
|
|
16
16
|
// Handles tuples and arrays
|
|
17
|
-
type JsonifyList<T extends
|
|
17
|
+
type JsonifyList<T extends UnknownArray> = T extends readonly []
|
|
18
18
|
? []
|
|
19
|
-
: T extends [infer F, ...infer R]
|
|
19
|
+
: T extends readonly [infer F, ...infer R]
|
|
20
20
|
? [NeverToNull<Jsonify<F>>, ...JsonifyList<R>]
|
|
21
21
|
: IsUnknown<T[number]> extends true
|
|
22
22
|
? []
|
|
@@ -114,12 +114,8 @@ export type Jsonify<T> = IsAny<T> extends true
|
|
|
114
114
|
? Record<string, number>
|
|
115
115
|
: T extends NotJsonable
|
|
116
116
|
? never // Non-JSONable type union was found not empty
|
|
117
|
-
: T extends
|
|
118
|
-
?
|
|
119
|
-
: T extends
|
|
120
|
-
?
|
|
121
|
-
:
|
|
122
|
-
? JsonifyList<WritableDeep<T>>
|
|
123
|
-
: T extends object
|
|
124
|
-
? JsonifyObject<UndefinedToOptional<T>> // JsonifyObject recursive call for its children
|
|
125
|
-
: never; // Otherwise any other non-object is removed
|
|
117
|
+
: T extends UnknownArray
|
|
118
|
+
? JsonifyList<T>
|
|
119
|
+
: T extends object
|
|
120
|
+
? JsonifyObject<UndefinedToOptional<T>> // JsonifyObject recursive call for its children
|
|
121
|
+
: never; // Otherwise any other non-object is removed
|