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 = (str: string) => { return JSON.parse(str, reviver) as unknown as T; };