diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-08-23 19:44:59 -0600 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-08-23 19:44:59 -0600 |
commit | dec7b614d895a1b507137e4a96a8999ff63aa179 (patch) | |
tree | 827437755bf9674db51818ee59d919c74a4ea2fc /engine/utils/coding.ts | |
parent | d64ffb5016119e54f0e20d05ae8ac9c96955d9d5 (diff) | |
download | jumpstorm-dec7b614d895a1b507137e4a96a8999ff63aa179.tar.gz jumpstorm-dec7b614d895a1b507137e4a96a8999ff63aa179.zip |
holy fuck we actually got somewhere
Diffstat (limited to 'engine/utils/coding.ts')
-rw-r--r-- | engine/utils/coding.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/engine/utils/coding.ts b/engine/utils/coding.ts new file mode 100644 index 0000000..4c1b17f --- /dev/null +++ b/engine/utils/coding.ts @@ -0,0 +1,27 @@ +const replacer = (_key: any, value: any) => { + if (value instanceof Map) { + return { + dataType: "Map", + value: Array.from(value.entries()), + }; + } else { + return value; + } +}; + +const reviver = (_key: any, value: any) => { + if (typeof value === "object" && value !== null) { + if (value.dataType === "Map") { + return new Map(value.value); + } + } + return value; +}; + +export const stringify = (obj: any) => { + return JSON.stringify(obj, replacer); +}; + +export const parse = <T>(str: string) => { + return JSON.parse(str, reviver) as unknown as T; +}; |