File tree 1 file changed +15
-5
lines changed 1 file changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -271,7 +271,14 @@ export function useStore(
271
271
const deserialize : ReplStore [ 'deserialize' ] = ( serializedState : string ) => {
272
272
if ( serializedState . startsWith ( '#' ) )
273
273
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
+ }
275
282
for ( const filename in saved ) {
276
283
if ( filename === '_version' ) {
277
284
vueVersion . value = saved [ filename ]
@@ -313,16 +320,19 @@ export function useStore(
313
320
applyBuiltinImportMap ( )
314
321
setActive ( store . mainFile )
315
322
}
316
-
317
- if ( serializedState ) {
318
- deserialize ( serializedState )
319
- } else {
323
+ const setDefaultFile = ( ) : void => {
320
324
setFile (
321
325
files . value ,
322
326
mainFile . value ,
323
327
template . value . welcomeSFC || welcomeSFCCode ,
324
328
)
325
329
}
330
+
331
+ if ( serializedState ) {
332
+ deserialize ( serializedState )
333
+ } else {
334
+ setDefaultFile ( )
335
+ }
326
336
if ( ! files . value [ mainFile . value ] ) {
327
337
mainFile . value = Object . keys ( files . value ) [ 0 ]
328
338
}
You can’t perform that action at this time.
0 commit comments