Skip to content

Commit 08555bf

Browse files
committed
migrations for js_undefined
1 parent 9b83514 commit 08555bf

File tree

4 files changed

+153
-3
lines changed

4 files changed

+153
-3
lines changed

packages/@rescript/runtime/Js_undefined.resi

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,41 @@
2828
type t<+'a> = Primitive_js_extern.undefined<'a>
2929

3030
/** Constructs a value of `Js.undefined<'a>` containing a value of `'a`. */
31+
@deprecated({
32+
reason: "Use `Nullable.make` or `option` directly instead.",
33+
migrate: Nullable.make(),
34+
})
3135
external return: 'a => t<'a> = "%identity"
3236

3337
/** Returns `true` if the given value is empty (undefined), `false` otherwise. */
34-
@deprecated("Use = Js.undefined directly")
38+
@deprecated
3539
let test: t<'a> => bool
3640

3741
/**
3842
Returns `true` if the given value is empty (undefined).
3943
4044
**since 1.6.1**
4145
*/
46+
@deprecated
4247
let testAny: 'a => bool
4348

4449
/** The empty value, `undefined` */
50+
@deprecated({
51+
reason: "Use `Nullable.undefined` instead.",
52+
migrate: Nullable.undefined,
53+
})
4554
external empty: t<'a> = "%undefined"
4655

56+
@deprecated({
57+
reason: "Use `Nullable.getUnsafe` instead.",
58+
migrate: Nullable.getUnsafe(),
59+
})
4760
external getUnsafe: t<'a> => 'a = "%identity"
61+
62+
@deprecated({
63+
reason: "Use `Nullable.getOrThrow` instead.",
64+
migrate: Nullable.getOrThrow(),
65+
})
4866
let getExn: t<'a> => 'a
4967

5068
/**
@@ -60,6 +78,10 @@ let maybeGreetWorld = (maybeGreeting: Js.undefined<string>) =>
6078
Js.Undefined.bind(maybeGreeting, greeting => greeting ++ " world!")
6179
```
6280
*/
81+
@deprecated({
82+
reason: "Use `Nullable.map` instead.",
83+
migrate: Nullable.map(),
84+
})
6385
let bind: (t<'a>, 'a => 'b) => t<'b>
6486

6587
/**
@@ -74,22 +96,42 @@ let maybeSay = (maybeMessage: Js.undefined<string>) =>
7496
Js.Undefined.iter(maybeMessage, message => Js.log(message))
7597
```
7698
*/
99+
@deprecated({
100+
reason: "Use `Nullable.forEach` instead.",
101+
migrate: Nullable.forEach(),
102+
})
77103
let iter: (t<'a>, 'a => unit) => unit
78104

79105
/**
80106
Maps `option<'a>` to `Js.undefined<'a>`.
81107
`Some(a)` => `a`
82108
`None` => `empty`
83109
*/
110+
@deprecated({
111+
reason: "Use `Nullable.fromOption` instead.",
112+
migrate: Nullable.fromOption(),
113+
})
84114
let fromOption: option<'a> => t<'a>
85115

86-
@deprecated("Use fromOption instead") let from_opt: option<'a> => t<'a>
116+
@deprecated({
117+
reason: "Use `Nullable.fromOption` instead.",
118+
migrate: Nullable.fromOption(),
119+
})
120+
let from_opt: option<'a> => t<'a>
87121

88122
/**
89123
Maps `Js.undefined<'a>` to `option<'a>`
90124
`a` => `Some(a)`
91125
`empty` => `None`
92126
*/
127+
@deprecated({
128+
reason: "Use `Nullable.toOption` instead.",
129+
migrate: Nullable.toOption(),
130+
})
93131
let toOption: t<'a> => option<'a>
94132

95-
@deprecated("use toOption instead") let to_opt: t<'a> => option<'a>
133+
@deprecated({
134+
reason: "Use `Nullable.toOption` instead.",
135+
migrate: Nullable.toOption(),
136+
})
137+
let to_opt: t<'a> => option<'a>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
let make1 = "hello"->Nullable.make
2+
let make2 = Nullable.make("hello")
3+
4+
let empty1 = Nullable.undefined
5+
6+
let getUnsafe1 = Nullable.make(1)->Nullable.getUnsafe
7+
let getUnsafe2 = Nullable.getUnsafe(Nullable.make(1))
8+
9+
let getExn1 = Nullable.make(1)->Nullable.getOrThrow
10+
let getExn2 = Nullable.getOrThrow(Nullable.make(1))
11+
12+
let map1 = Nullable.make(2)->Nullable.map(x => x + 1)
13+
let map2 = Nullable.map(Nullable.make(2), x => x + 1)
14+
15+
let forEach1 = Nullable.make(2)->Nullable.forEach(x => ignore(x))
16+
let forEach2 = Nullable.forEach(Nullable.make(2), x => ignore(x))
17+
18+
let fromOption1 = Some("x")->Nullable.fromOption
19+
let fromOption2 = Nullable.fromOption(None)
20+
21+
let from_opt1 = Some("y")->Nullable.fromOption
22+
let from_opt2 = Nullable.fromOption(None)
23+
24+
let toOption1 = Nullable.make(3)->Nullable.toOption
25+
let toOption2 = Nullable.toOption(Nullable.make(3))
26+
27+
let to_opt1 = Nullable.make(4)->Nullable.toOption
28+
let to_opt2 = Nullable.toOption(Nullable.make(4))
29+
30+
let test1 = Js.Undefined.empty->Js.Undefined.test
31+
let test2 = Js.Undefined.test(Js.Undefined.empty)
32+
let test3 = Js.Undefined.return(5)->Js.Undefined.bind(v => v)->Js.Undefined.test
33+
34+
let testAny1 = Js.Undefined.testAny(Js.Undefined.empty)
35+
let testAny2 = Js.Undefined.empty->Js.Undefined.testAny
36+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
let make1 = "hello"->Js.Undefined.return
2+
let make2 = Js.Undefined.return("hello")
3+
4+
let empty1 = Js.Undefined.empty
5+
6+
let getUnsafe1 = Js.Undefined.return(1)->Js.Undefined.getUnsafe
7+
let getUnsafe2 = Js.Undefined.getUnsafe(Js.Undefined.return(1))
8+
9+
let getExn1 = Js.Undefined.return(1)->Js.Undefined.getExn
10+
let getExn2 = Js.Undefined.getExn(Js.Undefined.return(1))
11+
12+
let map1 = Js.Undefined.return(2)->Js.Undefined.bind(x => x + 1)
13+
let map2 = Js.Undefined.bind(Js.Undefined.return(2), x => x + 1)
14+
15+
let forEach1 = Js.Undefined.return(2)->Js.Undefined.iter(x => ignore(x))
16+
let forEach2 = Js.Undefined.iter(Js.Undefined.return(2), x => ignore(x))
17+
18+
let fromOption1 = Some("x")->Js.Undefined.fromOption
19+
let fromOption2 = Js.Undefined.fromOption(None)
20+
21+
let from_opt1 = Some("y")->Js.Undefined.from_opt
22+
let from_opt2 = Js.Undefined.from_opt(None)
23+
24+
let toOption1 = Js.Undefined.return(3)->Js.Undefined.toOption
25+
let toOption2 = Js.Undefined.toOption(Js.Undefined.return(3))
26+
27+
let to_opt1 = Js.Undefined.return(4)->Js.Undefined.to_opt
28+
let to_opt2 = Js.Undefined.to_opt(Js.Undefined.return(4))
29+
30+
let test1 = Js.Undefined.empty->Js.Undefined.test
31+
let test2 = Js.Undefined.test(Js.Undefined.empty)
32+
let test3 = Js.Undefined.return(5)->Js.Undefined.bind(v => v)->Js.Undefined.test
33+
34+
let testAny1 = Js.Undefined.testAny(Js.Undefined.empty)
35+
let testAny2 = Js.Undefined.empty->Js.Undefined.testAny
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// This file is autogenerated so it can be type checked.
2+
// It's the migrated version of src/migrate/StdlibMigration_Js_Undefined.res.
3+
let make1 = "hello"->Nullable.make
4+
let make2 = Nullable.make("hello")
5+
6+
let empty1 = Nullable.undefined
7+
8+
let getUnsafe1 = Nullable.make(1)->Nullable.getUnsafe
9+
let getUnsafe2 = Nullable.getUnsafe(Nullable.make(1))
10+
11+
let getExn1 = Nullable.make(1)->Nullable.getOrThrow
12+
let getExn2 = Nullable.getOrThrow(Nullable.make(1))
13+
14+
let map1 = Nullable.make(2)->Nullable.map(x => x + 1)
15+
let map2 = Nullable.map(Nullable.make(2), x => x + 1)
16+
17+
let forEach1 = Nullable.make(2)->Nullable.forEach(x => ignore(x))
18+
let forEach2 = Nullable.forEach(Nullable.make(2), x => ignore(x))
19+
20+
let fromOption1 = Some("x")->Nullable.fromOption
21+
let fromOption2 = Nullable.fromOption(None)
22+
23+
let from_opt1 = Some("y")->Nullable.fromOption
24+
let from_opt2 = Nullable.fromOption(None)
25+
26+
let toOption1 = Nullable.make(3)->Nullable.toOption
27+
let toOption2 = Nullable.toOption(Nullable.make(3))
28+
29+
let to_opt1 = Nullable.make(4)->Nullable.toOption
30+
let to_opt2 = Nullable.toOption(Nullable.make(4))
31+
32+
let test1 = Js.Undefined.empty->Js.Undefined.test
33+
let test2 = Js.Undefined.test(Js.Undefined.empty)
34+
let test3 = Js.Undefined.return(5)->Js.Undefined.bind(v => v)->Js.Undefined.test
35+
36+
let testAny1 = Js.Undefined.testAny(Js.Undefined.empty)
37+
let testAny2 = Js.Undefined.empty->Js.Undefined.testAny

0 commit comments

Comments
 (0)