File tree Expand file tree Collapse file tree 1 file changed +15
-5
lines changed
Expand file tree Collapse file tree 1 file changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -271,7 +271,14 @@ export function useStore(
271271 const deserialize : ReplStore [ 'deserialize' ] = ( serializedState : string ) => {
272272 if ( serializedState . startsWith ( '#' ) )
273273 serializedState = serializedState . slice ( 1 )
274- const saved = JSON . parse ( atou ( serializedState ) )
274+ let saved : any
275+ try {
276+ saved = JSON . parse ( atou ( serializedState ) )
277+ } catch ( err ) {
278+ console . error ( err )
279+ alert ( 'Failed to load code from URL.' )
280+ return setDefaultFile ( )
281+ }
275282 for ( const filename in saved ) {
276283 if ( filename === '_version' ) {
277284 vueVersion . value = saved [ filename ]
@@ -313,16 +320,19 @@ export function useStore(
313320 applyBuiltinImportMap ( )
314321 setActive ( store . mainFile )
315322 }
316-
317- if ( serializedState ) {
318- deserialize ( serializedState )
319- } else {
323+ const setDefaultFile = ( ) : void => {
320324 setFile (
321325 files . value ,
322326 mainFile . value ,
323327 template . value . welcomeSFC || welcomeSFCCode ,
324328 )
325329 }
330+
331+ if ( serializedState ) {
332+ deserialize ( serializedState )
333+ } else {
334+ setDefaultFile ( )
335+ }
326336 if ( ! files . value [ mainFile . value ] ) {
327337 mainFile . value = Object . keys ( files . value ) [ 0 ]
328338 }
You can’t perform that action at this time.
0 commit comments