Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e2f2be4

Browse filesBrowse files
deploy: 73b986c
1 parent 7db66d3 commit e2f2be4
Copy full SHA for e2f2be4

File tree

4 files changed

+305
-294
lines changed
Filter options

4 files changed

+305
-294
lines changed

‎dist/immutable.d.ts

Copy file name to clipboardExpand all lines: dist/immutable.d.ts
+59-52Lines changed: 59 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -96,51 +96,59 @@ declare namespace Immutable {
9696
type OnlyObject<T> = Extract<T, object>;
9797

9898
/** @ignore */
99-
type ContainObject<T> = OnlyObject<T> extends object
100-
? OnlyObject<T> extends never
101-
? false
102-
: true
103-
: false;
99+
type ContainObject<T> =
100+
OnlyObject<T> extends object
101+
? OnlyObject<T> extends never
102+
? false
103+
: true
104+
: false;
104105

105106
/**
106107
* @ignore
107108
*
108109
* Used to convert deeply all immutable types to a plain TS type.
109110
* Using `unknown` on object instead of recursive call as we have a circular reference issue
110111
*/
111-
export type DeepCopy<T> = T extends Record<infer R>
112-
? // convert Record to DeepCopy plain JS object
113-
{
114-
[key in keyof R]: ContainObject<R[key]> extends true ? unknown : R[key];
115-
}
116-
: T extends MapOf<infer R>
117-
? // convert MapOf to DeepCopy plain JS object
118-
{
119-
[key in keyof R]: ContainObject<R[key]> extends true ? unknown : R[key];
120-
}
121-
: T extends Collection.Keyed<infer KeyedKey, infer V>
122-
? // convert KeyedCollection to DeepCopy plain JS object
123-
{
124-
[key in KeyedKey extends string | number | symbol
125-
? KeyedKey
126-
: string]: V extends object ? unknown : V;
127-
}
128-
: // convert IndexedCollection or Immutable.Set to DeepCopy plain JS array
129-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
130-
T extends Collection<infer _, infer V>
131-
? Array<DeepCopy<V>>
132-
: T extends string | number // Iterable scalar types : should be kept as is
133-
? T
134-
: T extends Iterable<infer V> // Iterable are converted to plain JS array
135-
? Array<DeepCopy<V>>
136-
: T extends object // plain JS object are converted deeply
137-
? {
138-
[ObjectKey in keyof T]: ContainObject<T[ObjectKey]> extends true
139-
? unknown
140-
: T[ObjectKey];
141-
}
142-
: // other case : should be kept as is
143-
T;
112+
export type DeepCopy<T> =
113+
T extends Record<infer R>
114+
? // convert Record to DeepCopy plain JS object
115+
{
116+
[key in keyof R]: ContainObject<R[key]> extends true
117+
? unknown
118+
: R[key];
119+
}
120+
: T extends MapOf<infer R>
121+
? // convert MapOf to DeepCopy plain JS object
122+
{
123+
[key in keyof R]: ContainObject<R[key]> extends true
124+
? unknown
125+
: R[key];
126+
}
127+
: T extends Collection.Keyed<infer KeyedKey, infer V>
128+
? // convert KeyedCollection to DeepCopy plain JS object
129+
{
130+
[key in KeyedKey extends string | number | symbol
131+
? KeyedKey
132+
: string]: V extends object ? unknown : V;
133+
}
134+
: // convert IndexedCollection or Immutable.Set to DeepCopy plain JS array
135+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
136+
T extends Collection<infer _, infer V>
137+
? Array<DeepCopy<V>>
138+
: T extends string | number // Iterable scalar types : should be kept as is
139+
? T
140+
: T extends Iterable<infer V> // Iterable are converted to plain JS array
141+
? Array<DeepCopy<V>>
142+
: T extends object // plain JS object are converted deeply
143+
? {
144+
[ObjectKey in keyof T]: ContainObject<
145+
T[ObjectKey]
146+
> extends true
147+
? unknown
148+
: T[ObjectKey];
149+
}
150+
: // other case : should be kept as is
151+
T;
144152

145153
/**
146154
* Describes which item in a pair should be placed first when sorting
@@ -895,7 +903,7 @@ declare namespace Immutable {
895903
/** @ignore */
896904
type Head<T extends ReadonlyArray<unknown>> = T extends [
897905
infer H,
898-
...Array<unknown>
906+
...Array<unknown>,
899907
]
900908
? H
901909
: never;
@@ -909,7 +917,7 @@ declare namespace Immutable {
909917
type RetrievePathReducer<
910918
T,
911919
C,
912-
L extends ReadonlyArray<unknown>
920+
L extends ReadonlyArray<unknown>,
913921
> = C extends keyof GetMapType<T>
914922
? L extends []
915923
? GetMapType<T>[C]
@@ -919,7 +927,7 @@ declare namespace Immutable {
919927
/** @ignore */
920928
type RetrievePath<
921929
R,
922-
P extends ReadonlyArray<string | number | symbol>
930+
P extends ReadonlyArray<string | number | symbol>,
923931
> = P extends [] ? P : RetrievePathReducer<R, Head<P>, Tail<P>>;
924932

925933
interface Map<K, V> extends Collection.Keyed<K, V> {
@@ -5419,10 +5427,10 @@ declare namespace Immutable {
54195427
type FromJS<JSValue> = JSValue extends FromJSNoTransform
54205428
? JSValue
54215429
: JSValue extends Array<unknown>
5422-
? FromJSArray<JSValue>
5423-
: JSValue extends object
5424-
? FromJSObject<JSValue>
5425-
: unknown;
5430+
? FromJSArray<JSValue>
5431+
: JSValue extends object
5432+
? FromJSObject<JSValue>
5433+
: unknown;
54265434

54275435
type FromJSNoTransform =
54285436
| Collection<unknown, unknown>
@@ -5431,9 +5439,8 @@ declare namespace Immutable {
54315439
| null
54325440
| undefined;
54335441

5434-
type FromJSArray<JSValue> = JSValue extends Array<infer T>
5435-
? List<FromJS<T>>
5436-
: never;
5442+
type FromJSArray<JSValue> =
5443+
JSValue extends Array<infer T> ? List<FromJS<T>> : never;
54375444

54385445
type FromJSObject<JSValue> = JSValue extends object
54395446
? Map<keyof JSValue, FromJS<JSValue[keyof JSValue]>>
@@ -5748,7 +5755,7 @@ declare namespace Immutable {
57485755
function remove<
57495756
TProps extends object,
57505757
C extends Record<TProps>,
5751-
K extends keyof TProps
5758+
K extends keyof TProps,
57525759
>(collection: C, key: K): C;
57535760
function remove<C extends Array<unknown>>(collection: C, key: number): C;
57545761
function remove<C, K extends keyof C>(collection: C, key: K): C;
@@ -5784,7 +5791,7 @@ declare namespace Immutable {
57845791
function set<
57855792
TProps extends object,
57865793
C extends Record<TProps>,
5787-
K extends keyof TProps
5794+
K extends keyof TProps,
57885795
>(record: C, key: K, value: TProps[K]): C;
57895796
function set<V, C extends Array<V>>(collection: C, key: number, value: V): C;
57905797
function set<C, K extends keyof C>(object: C, key: K, value: C[K]): C;
@@ -5827,13 +5834,13 @@ declare namespace Immutable {
58275834
function update<
58285835
TProps extends object,
58295836
C extends Record<TProps>,
5830-
K extends keyof TProps
5837+
K extends keyof TProps,
58315838
>(record: C, key: K, updater: (value: TProps[K]) => TProps[K]): C;
58325839
function update<
58335840
TProps extends object,
58345841
C extends Record<TProps>,
58355842
K extends keyof TProps,
5836-
NSV
5843+
NSV,
58375844
>(
58385845
record: C,
58395846
key: K,

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.