1
1
import {
2
2
type ToRefs ,
3
3
type UnwrapRef ,
4
+ computed ,
4
5
reactive ,
5
6
ref ,
6
7
shallowRef ,
@@ -28,7 +29,7 @@ export const tsconfigFile = 'tsconfig.json'
28
29
export function useStore (
29
30
{
30
31
files = ref ( Object . create ( null ) ) ,
31
- activeFile = undefined ! , // set later
32
+ activeFilename = undefined ! , // set later
32
33
mainFile = ref ( 'src/App.vue' ) ,
33
34
template = ref ( {
34
35
welcomeSFC : welcomeSFCCode ,
@@ -143,7 +144,7 @@ export function useStore(
143
144
}
144
145
145
146
const setActive : Store [ 'setActive' ] = ( filename ) => {
146
- activeFile . value = files . value [ filename ]
147
+ activeFilename . value = filename
147
148
}
148
149
const addFile : Store [ 'addFile' ] = ( fileOrFilename ) => {
149
150
let file : File
@@ -165,8 +166,8 @@ export function useStore(
165
166
return
166
167
}
167
168
168
- if ( activeFile . value . filename === filename ) {
169
- activeFile . value = files . value [ mainFile . value ]
169
+ if ( activeFilename . value === filename ) {
170
+ activeFilename . value = mainFile . value
170
171
}
171
172
delete files . value [ filename ]
172
173
}
@@ -302,13 +303,15 @@ export function useStore(
302
303
if ( ! files . value [ mainFile . value ] ) {
303
304
mainFile . value = Object . keys ( files . value ) [ 0 ]
304
305
}
305
- activeFile ||= ref ( files . value [ mainFile . value ] )
306
+ activeFilename ||= ref ( mainFile . value )
307
+ const activeFile = computed ( ( ) => files . value [ activeFilename . value ] )
306
308
307
309
applyBuiltinImportMap ( )
308
310
309
311
const store : ReplStore = reactive ( {
310
312
files,
311
313
activeFile,
314
+ activeFilename,
312
315
mainFile,
313
316
template,
314
317
builtinImportMap,
@@ -363,7 +366,7 @@ export interface SFCOptions {
363
366
364
367
export type StoreState = ToRefs < {
365
368
files : Record < string , File >
366
- activeFile : File
369
+ activeFilename : string
367
370
mainFile : string
368
371
template : {
369
372
welcomeSFC ?: string
@@ -390,6 +393,7 @@ export type StoreState = ToRefs<{
390
393
} >
391
394
392
395
export interface ReplStore extends UnwrapRef < StoreState > {
396
+ activeFile : File
393
397
init ( ) : void
394
398
setActive ( filename : string ) : void
395
399
addFile ( filename : string | File ) : void
0 commit comments