Skip to content

Commit 8523d22

Browse files
committed
dict migrations
1 parent ffc960a commit 8523d22

File tree

4 files changed

+144
-0
lines changed

4 files changed

+144
-0
lines changed

packages/@rescript/runtime/Js_dict.resi

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ Js.Dict.get(ages, "Vinh") == Some(22)
5757
Js.Dict.get(ages, "Paul") == None
5858
```
5959
*/
60+
@deprecated({
61+
reason: "Use `Dict.get` instead.",
62+
migrate: Dict.get(),
63+
})
6064
let get: (t<'a>, key) => option<'a>
6165

6266
/**
@@ -69,6 +73,10 @@ Js.Dict.unsafeGet(ages, "Fred") == 49
6973
Js.Dict.unsafeGet(ages, "Paul") // returns undefined
7074
```
7175
*/
76+
@deprecated({
77+
reason: "Use `Dict.getUnsafe` instead.",
78+
migrate: Dict.getUnsafe(),
79+
})
7280
@get_index
7381
external unsafeGet: (t<'a>, key) => 'a = ""
7482

@@ -88,6 +96,10 @@ Js.Dict.set(ages, "David", 66)
8896
Js.log(ages == Js.Dict.fromList(list{("Maria", 31), ("Vinh", 22), ("Fred", 49), ("David", 66)}))
8997
```
9098
*/
99+
@deprecated({
100+
reason: "Use `Dict.set` instead.",
101+
migrate: Dict.set(),
102+
})
91103
@set_index
92104
external set: (t<'a>, key, 'a) => unit = ""
93105

@@ -100,14 +112,26 @@ Returns all the keys in the dictionary `dict`.
100112
Js.Dict.keys(ages) == ["Maria", "Vinh", "Fred"]
101113
```
102114
*/
115+
@deprecated({
116+
reason: "Use `Dict.keysToArray` instead.",
117+
migrate: Dict.keysToArray(),
118+
})
103119
@val
104120
external keys: t<'a> => array<string> = "Object.keys"
105121

106122
/** Returns an empty dictionary. */
123+
@deprecated({
124+
reason: "Use `Dict.make` instead.",
125+
migrate: Dict.make(),
126+
})
107127
@obj
108128
external empty: unit => t<'a> = ""
109129

110130
/** Experimental internal function */
131+
@deprecated({
132+
reason: "Use `Dict.delete` instead.",
133+
migrate: Dict.delete(),
134+
})
111135
let unsafeDeleteKey: (t<string>, string) => unit
112136

113137
/**
@@ -119,6 +143,10 @@ Returns an array of key/value pairs in the given dictionary (ES2017).
119143
Js.Dict.entries(ages) == [("Maria", 30), ("Vinh", 22), ("Fred", 49)]
120144
```
121145
*/
146+
@deprecated({
147+
reason: "Use `Dict.toArray` instead.",
148+
migrate: Dict.toArray(),
149+
})
122150
let entries: t<'a> => array<(key, 'a)>
123151

124152
/**
@@ -130,6 +158,10 @@ Returns the values in the given dictionary (ES2017).
130158
Js.Dict.values(ages) == [30, 22, 49]
131159
```
132160
*/
161+
@deprecated({
162+
reason: "Use `Dict.valuesToArray` instead.",
163+
migrate: Dict.valuesToArray(),
164+
})
133165
let values: t<'a> => array<'a>
134166

135167
/**
@@ -142,6 +174,7 @@ argument.
142174
let capitals = Js.Dict.fromList(list{("Japan", "Tokyo"), ("France", "Paris"), ("Egypt", "Cairo")})
143175
```
144176
*/
177+
@deprecated("Use `Dict.fromArray(List.toArray(...))` instead.")
145178
let fromList: list<(key, 'a)> => t<'a>
146179

147180
/**
@@ -154,6 +187,10 @@ argument.
154187
let capitals2 = Js.Dict.fromArray([("Germany", "Berlin"), ("Burkina Faso", "Ouagadougou")])
155188
```
156189
*/
190+
@deprecated({
191+
reason: "Use `Dict.fromArray` instead.",
192+
migrate: Dict.fromArray(),
193+
})
157194
let fromArray: array<(key, 'a)> => t<'a>
158195

159196
/**
@@ -171,4 +208,9 @@ let salePrices = Js.Dict.map(discount, prices)
171208
salePrices == Js.Dict.fromList(list{("pen", 0.90), ("book", 4.50), ("stapler", 6.30)})
172209
```
173210
*/
211+
@deprecated({
212+
reason: "Use `Dict.mapValues` instead.",
213+
migrate: Dict.mapValues(%insert.unlabelledArgument(1), %insert.unlabelledArgument(0)),
214+
migrateInPipeChain: Dict.mapValues(),
215+
})
174216
let map: ('a => 'b, t<'a>) => t<'b>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
let d = Dict.make()
2+
3+
let get1 = d->Dict.get("k")
4+
let get2 = Dict.get(d, "k")
5+
6+
let unsafeGet1 = d->Dict.getUnsafe("k")
7+
let unsafeGet2 = Dict.getUnsafe(d, "k")
8+
9+
let set1 = d->Dict.set("k", 1)
10+
let set2 = Dict.set(d, "k", 1)
11+
12+
let keys1 = d->Dict.keysToArray
13+
let keys2 = Dict.keysToArray(d)
14+
15+
let values1 = d->Dict.valuesToArray
16+
let values2 = Dict.valuesToArray(d)
17+
18+
let entries1 = d->Dict.toArray
19+
let entries2 = Dict.toArray(d)
20+
21+
let dStr: Js.Dict.t<string> = Dict.make()
22+
let del1 = dStr->Dict.delete("k")
23+
let del2 = Dict.delete(dStr, "k")
24+
25+
let empty1: Js.Dict.t<int> = Dict.make()
26+
27+
let fromArray1 = [("a", 1), ("b", 2)]->Dict.fromArray
28+
let fromArray2 = Dict.fromArray([("a", 1), ("b", 2)])
29+
30+
let fromList1 = list{("a", 1), ("b", 2)}->Js.Dict.fromList
31+
let fromList2 = Js.Dict.fromList(list{("a", 1), ("b", 2)})
32+
33+
let map2 = Dict.mapValues(d, x => x + 1)
34+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
let d = Js.Dict.empty()
2+
3+
let get1 = d->Js.Dict.get("k")
4+
let get2 = Js.Dict.get(d, "k")
5+
6+
let unsafeGet1 = d->Js.Dict.unsafeGet("k")
7+
let unsafeGet2 = Js.Dict.unsafeGet(d, "k")
8+
9+
let set1 = d->Js.Dict.set("k", 1)
10+
let set2 = Js.Dict.set(d, "k", 1)
11+
12+
let keys1 = d->Js.Dict.keys
13+
let keys2 = Js.Dict.keys(d)
14+
15+
let values1 = d->Js.Dict.values
16+
let values2 = Js.Dict.values(d)
17+
18+
let entries1 = d->Js.Dict.entries
19+
let entries2 = Js.Dict.entries(d)
20+
21+
let dStr: Js.Dict.t<string> = Js.Dict.empty()
22+
let del1 = dStr->Js.Dict.unsafeDeleteKey("k")
23+
let del2 = Js.Dict.unsafeDeleteKey(dStr, "k")
24+
25+
let empty1: Js.Dict.t<int> = Js.Dict.empty()
26+
27+
let fromArray1 = [("a", 1), ("b", 2)]->Js.Dict.fromArray
28+
let fromArray2 = Js.Dict.fromArray([("a", 1), ("b", 2)])
29+
30+
let fromList1 = list{("a", 1), ("b", 2)}->Js.Dict.fromList
31+
let fromList2 = Js.Dict.fromList(list{("a", 1), ("b", 2)})
32+
33+
let map2 = Js.Dict.map(x => x + 1, d)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// This file is autogenerated so it can be type checked.
2+
// It's the migrated version of src/migrate/StdlibMigration_Dict.res.
3+
let d = Dict.make()
4+
5+
let get1 = d->Dict.get("k")
6+
let get2 = Dict.get(d, "k")
7+
8+
let unsafeGet1 = d->Dict.getUnsafe("k")
9+
let unsafeGet2 = Dict.getUnsafe(d, "k")
10+
11+
let set1 = d->Dict.set("k", 1)
12+
let set2 = Dict.set(d, "k", 1)
13+
14+
let keys1 = d->Dict.keysToArray
15+
let keys2 = Dict.keysToArray(d)
16+
17+
let values1 = d->Dict.valuesToArray
18+
let values2 = Dict.valuesToArray(d)
19+
20+
let entries1 = d->Dict.toArray
21+
let entries2 = Dict.toArray(d)
22+
23+
let dStr: Js.Dict.t<string> = Dict.make()
24+
let del1 = dStr->Dict.delete("k")
25+
let del2 = Dict.delete(dStr, "k")
26+
27+
let empty1: Js.Dict.t<int> = Dict.make()
28+
29+
let fromArray1 = [("a", 1), ("b", 2)]->Dict.fromArray
30+
let fromArray2 = Dict.fromArray([("a", 1), ("b", 2)])
31+
32+
let fromList1 = list{("a", 1), ("b", 2)}->Js.Dict.fromList
33+
let fromList2 = Js.Dict.fromList(list{("a", 1), ("b", 2)})
34+
35+
let map2 = Dict.mapValues(d, x => x + 1)

0 commit comments

Comments
 (0)