From f07ac99b31e4b873acb39a81e86d2cd99376cef7 Mon Sep 17 00:00:00 2001 From: wangcch Date: Thu, 13 Feb 2025 13:13:47 +0800 Subject: [PATCH] fix(store): `applyBuiltinImportMap` when deserialize --- src/store.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/store.ts b/src/store.ts index d249aff0..6a5dfcee 100644 --- a/src/store.ts +++ b/src/store.ts @@ -272,7 +272,10 @@ export function useStore( if (vueVersion.value) files._version = vueVersion.value return '#' + utoa(JSON.stringify(files)) } - const deserialize: ReplStore['deserialize'] = (serializedState: string) => { + const deserialize: ReplStore['deserialize'] = ( + serializedState: string, + checkBuiltinImportMap = true, + ) => { if (serializedState.startsWith('#')) serializedState = serializedState.slice(1) let saved: any @@ -290,6 +293,9 @@ export function useStore( setFile(files.value, filename, saved[filename]) } } + if (checkBuiltinImportMap) { + applyBuiltinImportMap() + } } const getFiles: ReplStore['getFiles'] = () => { const exported: Record = {} @@ -333,7 +339,7 @@ export function useStore( } if (serializedState) { - deserialize(serializedState) + deserialize(serializedState, false) } else { setDefaultFile() } @@ -444,7 +450,12 @@ export interface ReplStore extends UnwrapRef { setImportMap(map: ImportMap, merge?: boolean): void getTsConfig(): Record serialize(): string - deserialize(serializedState: string): void + /** + * Deserializes the given string to restore the REPL store state. + * @param serializedState - The serialized state string. + * @param checkBuiltinImportMap - Whether to check the built-in import map. Default to true + */ + deserialize(serializedState: string, checkBuiltinImportMap?: boolean): void getFiles(): Record setFiles(newFiles: Record, mainFile?: string): Promise }