aboutsummaryrefslogtreecommitdiff
path: root/src/gleam_stdlib.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'src/gleam_stdlib.mjs')
-rw-r--r--src/gleam_stdlib.mjs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs
index 112007f..4f54c4d 100644
--- a/src/gleam_stdlib.mjs
+++ b/src/gleam_stdlib.mjs
@@ -673,8 +673,14 @@ export function decode_result(data) {
return Result.isResult(data) ? new Ok(data) : decoder_error("Result", data);
}
+function decode_object_to_map(data) {
+ return typeof data === 'object' && data !== null && !Array.isArray(data)
+ ? new Ok(new Map(Object.entries(data)))
+ : decoder_error("Map", data);
+}
+
export function decode_map(data) {
- return data instanceof Map ? new Ok(data) : decoder_error("Map", data);
+ return data instanceof Map ? new Ok(data) : decode_object_to_map(data);
}
export function decode_option(data, decoder) {