From a9d03207752a9a1fa6bace2b35c06cf14962d91f Mon Sep 17 00:00:00 2001 From: Peter Saxton Date: Thu, 12 Jan 2023 12:16:47 +0100 Subject: decode javascript object as maps --- src/gleam_stdlib.mjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/gleam_stdlib.mjs') 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) { -- cgit v1.2.3