diff --git a/src/lib/util/serde.ts b/src/lib/util/serde.ts index d70ea3c1..7f56ab25 100644 --- a/src/lib/util/serde.ts +++ b/src/lib/util/serde.ts @@ -32,15 +32,15 @@ export const pakoSerde: Serde = { return inflate(data, { to: 'string' }); } }; -const serdes: Record = { - [SerdeType.Base64]: base64Serde, - [SerdeType.Pako]: pakoSerde -}; +const serdes: Map = new Map([ + [SerdeType.Base64, base64Serde], + [SerdeType.Pako, pakoSerde] +]); export const serializeState = (state: State): string => { const json = JSON.stringify(state); const defaultSerde = SerdeType.Pako; - const serialized = serdes[defaultSerde].serialize(json); + const serialized = serdes.get(defaultSerde).serialize(json); return `${defaultSerde}:${serialized}`; }; @@ -52,6 +52,6 @@ export const deserializeState = (state: string): State => { type = SerdeType.Base64; serialized = state; } - const json = serdes[type].deserialize(serialized); - return JSON.parse(json); + const json = serdes.get(type).deserialize(serialized); + return JSON.parse(json) as State; }; diff --git a/src/lib/util/state.ts b/src/lib/util/state.ts index fb190049..73157a54 100644 --- a/src/lib/util/state.ts +++ b/src/lib/util/state.ts @@ -46,7 +46,7 @@ export const loadState = (data: string): void => { console.log('Loading', data); try { state = deserializeState(data); - const mermaidConfig = + const mermaidConfig: { [key: string]: string } = typeof state.mermaid === 'string' ? JSON.parse(state.mermaid) : state.mermaid; if ( mermaidConfig.securityLevel &&