immutable 5.0.0-beta.2 → 5.0.0-beta.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.
Files changed (82) hide show
  1. package/README.md +3 -3
  2. package/dist/immutable.d.ts +14 -131
  3. package/dist/immutable.es.js +5965 -0
  4. package/dist/immutable.js +59 -1
  5. package/dist/immutable.min.js +32 -32
  6. package/package.json +3 -5
  7. package/dist/es/Collection.js +0 -74
  8. package/dist/es/CollectionImpl.js +0 -781
  9. package/dist/es/Hash.js +0 -259
  10. package/dist/es/Immutable.js +0 -73
  11. package/dist/es/Iterator.js +0 -105
  12. package/dist/es/List.js +0 -691
  13. package/dist/es/Map.js +0 -832
  14. package/dist/es/Math.js +0 -44
  15. package/dist/es/Operations.js +0 -952
  16. package/dist/es/OrderedMap.js +0 -194
  17. package/dist/es/OrderedSet.js +0 -90
  18. package/dist/es/PairSorting.js +0 -29
  19. package/dist/es/Range.js +0 -167
  20. package/dist/es/Record.js +0 -290
  21. package/dist/es/Repeat.js +0 -129
  22. package/dist/es/Seq.js +0 -396
  23. package/dist/es/Set.js +0 -277
  24. package/dist/es/Stack.js +0 -259
  25. package/dist/es/TrieUtils.js +0 -115
  26. package/dist/es/fromJS.js +0 -73
  27. package/dist/es/functional/get.js +0 -37
  28. package/dist/es/functional/getIn.js +0 -40
  29. package/dist/es/functional/has.js +0 -34
  30. package/dist/es/functional/hasIn.js +0 -31
  31. package/dist/es/functional/merge.js +0 -136
  32. package/dist/es/functional/remove.js +0 -55
  33. package/dist/es/functional/removeIn.js +0 -31
  34. package/dist/es/functional/set.js +0 -51
  35. package/dist/es/functional/setIn.js +0 -31
  36. package/dist/es/functional/update.js +0 -30
  37. package/dist/es/functional/updateIn.js +0 -93
  38. package/dist/es/is.js +0 -107
  39. package/dist/es/methods/asImmutable.js +0 -28
  40. package/dist/es/methods/asMutable.js +0 -30
  41. package/dist/es/methods/deleteIn.js +0 -30
  42. package/dist/es/methods/getIn.js +0 -30
  43. package/dist/es/methods/hasIn.js +0 -30
  44. package/dist/es/methods/merge.js +0 -78
  45. package/dist/es/methods/mergeDeep.js +0 -40
  46. package/dist/es/methods/mergeDeepIn.js +0 -36
  47. package/dist/es/methods/mergeIn.js +0 -35
  48. package/dist/es/methods/setIn.js +0 -30
  49. package/dist/es/methods/toObject.js +0 -35
  50. package/dist/es/methods/update.js +0 -32
  51. package/dist/es/methods/updateIn.js +0 -30
  52. package/dist/es/methods/wasAltered.js +0 -28
  53. package/dist/es/methods/withMutations.js +0 -30
  54. package/dist/es/package.json.js +0 -26
  55. package/dist/es/predicates/isAssociative.js +0 -31
  56. package/dist/es/predicates/isCollection.js +0 -30
  57. package/dist/es/predicates/isImmutable.js +0 -31
  58. package/dist/es/predicates/isIndexed.js +0 -30
  59. package/dist/es/predicates/isKeyed.js +0 -30
  60. package/dist/es/predicates/isList.js +0 -30
  61. package/dist/es/predicates/isMap.js +0 -30
  62. package/dist/es/predicates/isOrdered.js +0 -30
  63. package/dist/es/predicates/isOrderedMap.js +0 -31
  64. package/dist/es/predicates/isOrderedSet.js +0 -31
  65. package/dist/es/predicates/isRecord.js +0 -30
  66. package/dist/es/predicates/isSeq.js +0 -30
  67. package/dist/es/predicates/isSet.js +0 -30
  68. package/dist/es/predicates/isStack.js +0 -30
  69. package/dist/es/predicates/isValueObject.js +0 -32
  70. package/dist/es/toJS.js +0 -53
  71. package/dist/es/utils/arrCopy.js +0 -34
  72. package/dist/es/utils/assertNotInfinite.js +0 -33
  73. package/dist/es/utils/coerceKeyPath.js +0 -39
  74. package/dist/es/utils/deepEqual.js +0 -98
  75. package/dist/es/utils/hasOwnProperty.js +0 -26
  76. package/dist/es/utils/invariant.js +0 -28
  77. package/dist/es/utils/isArrayLike.js +0 -43
  78. package/dist/es/utils/isDataStructure.js +0 -38
  79. package/dist/es/utils/isPlainObj.js +0 -51
  80. package/dist/es/utils/mixin.js +0 -34
  81. package/dist/es/utils/quoteString.js +0 -32
  82. package/dist/es/utils/shallowCopy.js +0 -40
package/README.md CHANGED
@@ -152,9 +152,9 @@ via relative path to the type definitions at the top of your file.
152
152
 
153
153
  ```js
154
154
  ///<reference path='./node_modules/immutable/dist/immutable.d.ts'/>
155
- import { Map } from 'immutable';
156
- var map1: Map<string, number>;
157
- map1 = Map({ a: 1, b: 2, c: 3 });
155
+ import Immutable from 'immutable';
156
+ var map1: Immutable.Map<string, number>;
157
+ map1 = Immutable.Map({ a: 1, b: 2, c: 3 });
158
158
  var map2 = map1.set('b', 50);
159
159
  map1.get('b'); // 2
160
160
  map2.get('b'); // 50
@@ -112,11 +112,6 @@ declare namespace Immutable {
112
112
  {
113
113
  [key in keyof R]: ContainObject<R[key]> extends true ? unknown : R[key];
114
114
  }
115
- : T extends MapOf<infer R>
116
- ? // convert MapOf to DeepCopy plain JS object
117
- {
118
- [key in keyof R]: ContainObject<R[key]> extends true ? unknown : R[key];
119
- }
120
115
  : T extends Collection.Keyed<infer KeyedKey, infer V>
121
116
  ? // convert KeyedCollection to DeepCopy plain JS object
122
117
  {
@@ -846,96 +841,9 @@ declare namespace Immutable {
846
841
  * not altered.
847
842
  */
848
843
  function Map<K, V>(collection?: Iterable<[K, V]>): Map<K, V>;
849
- function Map<R extends { [key in string | number | symbol]: unknown }>(
850
- obj: R
851
- ): MapOf<R>;
852
844
  function Map<V>(obj: { [key: string]: V }): Map<string, V>;
853
845
  function Map<K extends string | symbol, V>(obj: { [P in K]?: V }): Map<K, V>;
854
846
 
855
- /**
856
- * Represent a Map constructed by an object
857
- *
858
- * @ignore
859
- */
860
- interface MapOf<R extends { [key in string | number | symbol]: unknown }>
861
- extends Map<keyof R, R[keyof R]> {
862
- /**
863
- * Returns the value associated with the provided key, or notSetValue if
864
- * the Collection does not contain this key.
865
- *
866
- * Note: it is possible a key may be associated with an `undefined` value,
867
- * so if `notSetValue` is not provided and this method returns `undefined`,
868
- * that does not guarantee the key was not found.
869
- */
870
- get<K extends keyof R>(key: K, notSetValue?: unknown): R[K];
871
- get<NSV>(key: any, notSetValue: NSV): NSV;
872
-
873
- // https://github.com/microsoft/TypeScript/pull/39094
874
- getIn<P extends ReadonlyArray<string | number | symbol>>(
875
- searchKeyPath: [...P],
876
- notSetValue?: unknown
877
- ): RetrievePath<R, P>;
878
-
879
- set<K extends keyof R>(key: K, value: R[K]): this;
880
-
881
- update(updater: (value: this) => this): this;
882
- update<K extends keyof R>(key: K, updater: (value: R[K]) => R[K]): this;
883
- update<K extends keyof R, NSV extends R[K]>(
884
- key: K,
885
- notSetValue: NSV,
886
- updater: (value: R[K]) => R[K]
887
- ): this;
888
-
889
- // Possible best type is MapOf<Omit<R, K>> but Omit seems to broke other function calls
890
- // and generate recursion error with other methods (update, merge, etc.) until those functions are defined in MapOf
891
- delete<K extends keyof R>(
892
- key: K
893
- ): Extract<R[K], undefined> extends never ? never : this;
894
- remove<K extends keyof R>(
895
- key: K
896
- ): Extract<R[K], undefined> extends never ? never : this;
897
-
898
- toJS(): { [K in keyof R]: DeepCopy<R[K]> };
899
-
900
- toJSON(): { [K in keyof R]: R[K] };
901
- }
902
-
903
- // Loosely based off of this work.
904
- // https://github.com/immutable-js/immutable-js/issues/1462#issuecomment-584123268
905
-
906
- /** @ignore */
907
- type GetMapType<S> = S extends MapOf<infer T> ? T : S;
908
-
909
- /** @ignore */
910
- type Head<T extends ReadonlyArray<any>> = T extends [
911
- infer H,
912
- ...Array<unknown>
913
- ]
914
- ? H
915
- : never;
916
-
917
- /** @ignore */
918
- type Tail<T extends ReadonlyArray<any>> = T extends [unknown, ...infer I]
919
- ? I
920
- : Array<never>;
921
-
922
- /** @ignore */
923
- type RetrievePathReducer<
924
- T,
925
- C,
926
- L extends ReadonlyArray<any>
927
- > = C extends keyof GetMapType<T>
928
- ? L extends []
929
- ? GetMapType<T>[C]
930
- : RetrievePathReducer<GetMapType<T>[C], Head<L>, Tail<L>>
931
- : never;
932
-
933
- /** @ignore */
934
- type RetrievePath<
935
- R,
936
- P extends ReadonlyArray<string | number | symbol>
937
- > = P extends [] ? P : RetrievePathReducer<R, Head<P>, Tail<P>>;
938
-
939
847
  interface Map<K, V> extends Collection.Keyed<K, V> {
940
848
  /**
941
849
  * The number of entries in this Map.
@@ -1153,17 +1061,16 @@ declare namespace Immutable {
1153
1061
  */
1154
1062
  merge<KC, VC>(
1155
1063
  ...collections: Array<Iterable<[KC, VC]>>
1156
- ): Map<K | KC, Exclude<V, VC> | VC>;
1064
+ ): Map<K | KC, V | VC>;
1157
1065
  merge<C>(
1158
1066
  ...collections: Array<{ [key: string]: C }>
1159
- ): Map<K | string, Exclude<V, C> | C>;
1160
-
1067
+ ): Map<K | string, V | C>;
1161
1068
  concat<KC, VC>(
1162
1069
  ...collections: Array<Iterable<[KC, VC]>>
1163
- ): Map<K | KC, Exclude<V, VC> | VC>;
1070
+ ): Map<K | KC, V | VC>;
1164
1071
  concat<C>(
1165
1072
  ...collections: Array<{ [key: string]: C }>
1166
- ): Map<K | string, Exclude<V, C> | C>;
1073
+ ): Map<K | string, V | C>;
1167
1074
 
1168
1075
  /**
1169
1076
  * Like `merge()`, `mergeWith()` returns a new Map resulting from merging
@@ -1183,14 +1090,10 @@ declare namespace Immutable {
1183
1090
  *
1184
1091
  * Note: `mergeWith` can be used in `withMutations`.
1185
1092
  */
1186
- mergeWith<KC, VC, VCC>(
1187
- merger: (oldVal: V, newVal: VC, key: K) => VCC,
1188
- ...collections: Array<Iterable<[KC, VC]>>
1189
- ): Map<K | KC, V | VC | VCC>;
1190
- mergeWith<C, CC>(
1191
- merger: (oldVal: V, newVal: C, key: string) => CC,
1192
- ...collections: Array<{ [key: string]: C }>
1193
- ): Map<K | string, V | C | CC>;
1093
+ mergeWith(
1094
+ merger: (oldVal: V, newVal: V, key: K) => V,
1095
+ ...collections: Array<Iterable<[K, V]> | { [key: string]: V }>
1096
+ ): this;
1194
1097
 
1195
1098
  /**
1196
1099
  * Like `merge()`, but when two compatible collections are encountered with
@@ -1221,12 +1124,9 @@ declare namespace Immutable {
1221
1124
  *
1222
1125
  * Note: `mergeDeep` can be used in `withMutations`.
1223
1126
  */
1224
- mergeDeep<KC, VC>(
1225
- ...collections: Array<Iterable<[KC, VC]>>
1226
- ): Map<K | KC, V | VC>;
1227
- mergeDeep<C>(
1228
- ...collections: Array<{ [key: string]: C }>
1229
- ): Map<K | string, V | C>;
1127
+ mergeDeep(
1128
+ ...collections: Array<Iterable<[K, V]> | { [key: string]: V }>
1129
+ ): this;
1230
1130
 
1231
1131
  /**
1232
1132
  * Like `mergeDeep()`, but when two non-collections or incompatible
@@ -1694,31 +1594,14 @@ declare namespace Immutable {
1694
1594
  */
1695
1595
  merge<KC, VC>(
1696
1596
  ...collections: Array<Iterable<[KC, VC]>>
1697
- ): OrderedMap<K | KC, Exclude<V, VC> | VC>;
1597
+ ): OrderedMap<K | KC, V | VC>;
1698
1598
  merge<C>(
1699
1599
  ...collections: Array<{ [key: string]: C }>
1700
- ): OrderedMap<K | string, Exclude<V, C> | C>;
1701
-
1600
+ ): OrderedMap<K | string, V | C>;
1702
1601
  concat<KC, VC>(
1703
1602
  ...collections: Array<Iterable<[KC, VC]>>
1704
- ): OrderedMap<K | KC, Exclude<V, VC> | VC>;
1705
- concat<C>(
1706
- ...collections: Array<{ [key: string]: C }>
1707
- ): OrderedMap<K | string, Exclude<V, C> | C>;
1708
-
1709
- mergeWith<KC, VC, VCC>(
1710
- merger: (oldVal: V, newVal: VC, key: K) => VCC,
1711
- ...collections: Array<Iterable<[KC, VC]>>
1712
- ): OrderedMap<K | KC, V | VC | VCC>;
1713
- mergeWith<C, CC>(
1714
- merger: (oldVal: V, newVal: C, key: string) => CC,
1715
- ...collections: Array<{ [key: string]: C }>
1716
- ): OrderedMap<K | string, V | C | CC>;
1717
-
1718
- mergeDeep<KC, VC>(
1719
- ...collections: Array<Iterable<[KC, VC]>>
1720
1603
  ): OrderedMap<K | KC, V | VC>;
1721
- mergeDeep<C>(
1604
+ concat<C>(
1722
1605
  ...collections: Array<{ [key: string]: C }>
1723
1606
  ): OrderedMap<K | string, V | C>;
1724
1607