aboutsummaryrefslogtreecommitdiff
path: root/src/gleam_stdlib.js
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-09-11 14:56:20 +0100
committerLouis Pilfold <louis@lpil.uk>2021-09-11 14:56:20 +0100
commitff8be8c4e25220e1fae4bbb4cbd20d1f2072aae0 (patch)
tree740d47b3b2e93545fbddc7fd6858517f4092aa71 /src/gleam_stdlib.js
parenta6b75f614c97f7cf2bede89b5769bfcd13c31571 (diff)
downloadgleam_stdlib-ff8be8c4e25220e1fae4bbb4cbd20d1f2072aae0.tar.gz
gleam_stdlib-ff8be8c4e25220e1fae4bbb4cbd20d1f2072aae0.zip
JS decode field for objects
Diffstat (limited to 'src/gleam_stdlib.js')
-rw-r--r--src/gleam_stdlib.js8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gleam_stdlib.js b/src/gleam_stdlib.js
index 37f071a..b7173c2 100644
--- a/src/gleam_stdlib.js
+++ b/src/gleam_stdlib.js
@@ -473,6 +473,8 @@ export function decode64(sBase64) {
export function classify_dynamic(data) {
if (typeof data === "string") {
return "String";
+ } else if (Result.isResult(data)) {
+ return "Result";
} else if (List.isList(data)) {
return "List";
} else if (Number.isInteger(data)) {
@@ -552,3 +554,9 @@ export function decode_option(data, decoder) {
return result;
}
}
+
+export function decode_field(value, name) {
+ return name in value
+ ? new Ok(value[name])
+ : decoder_error(`Value with field ${inspect(name)}`, value);
+}