Skip to content

Commit be9897e

Browse files
committed
feat(option): add or as replacement for orElse, deprecate orElse
1 parent 79c8086 commit be9897e

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

src/Core__Option.mjs

+4-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ function getWithDefault(opt, $$default) {
8080
}
8181
}
8282

83-
function orElse(opt, other) {
83+
function or(opt, other) {
8484
if (opt !== undefined) {
8585
return opt;
8686
} else {
@@ -124,6 +124,8 @@ function cmp(a, b, f) {
124124
}
125125
}
126126

127+
var orElse = or;
128+
127129
export {
128130
flat ,
129131
filter ,
@@ -134,6 +136,7 @@ export {
134136
map ,
135137
flatMap ,
136138
getWithDefault ,
139+
or ,
137140
orElse ,
138141
isSome ,
139142
isNone ,

src/Core__Option.res

+3-2
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ let getWithDefault = (opt, default) =>
8888
| None => default
8989
}
9090

91-
let orElse = (opt, other) =>
91+
let or = (opt, other) =>
9292
switch opt {
93-
| Some(_) as some => some
93+
| Some(_) => opt
9494
| None => other
9595
}
9696

@@ -99,6 +99,7 @@ let isSome = opt =>
9999
| Some(_) => true
100100
| None => false
101101
}
102+
let orElse = or
102103

103104
let isNone = value => value == None
104105

src/Core__Option.resi

+14
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,19 @@ None->greet // "Greetings Anonymous"
186186
*/
187187
let getWithDefault: (option<'a>, 'a) => 'a
188188

189+
/**
190+
`or(opt1, opt2)` returns `opt2` if `opt1` is `None`, otherwise `opt1`.
191+
192+
## Examples
193+
194+
```rescript
195+
Option.or(Some(1812), Some(1066)) == Some(1812)
196+
Option.or(None, Some(1066) == Some(1066)
197+
Option.or(None, None) == None
198+
```
199+
*/
200+
let or: (option<'a>, option<'a>) => option<'a>
201+
189202
/**
190203
`orElse(opt1, opt2)` returns `opt2` if `opt1` is `None`, otherwise `opt1`.
191204

@@ -197,6 +210,7 @@ Option.orElse(None, Some(1066) == Some(1066)
197210
Option.orElse(None, None) == None
198211
```
199212
*/
213+
@deprecated
200214
let orElse: (option<'a>, option<'a>) => option<'a>
201215

202216
/**

0 commit comments

Comments
 (0)