diff --git a/package.json b/package.json index 9038d039..f5176b1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@vue/repl", - "version": "1.3.6", + "version": "1.4.0", "description": "Vue component for editing Vue components", "main": "dist/ssr-stub.js", "module": "dist/vue-repl.js", diff --git a/src/Repl.vue b/src/Repl.vue index f7874fd9..bb5422b8 100644 --- a/src/Repl.vue +++ b/src/Repl.vue @@ -25,10 +25,26 @@ const props = withDefaults(defineProps(), { ssr: false }) -props.store.options = props.sfcOptions -props.store.init() +const { store } = props +const sfcOptions = (store.options = props.sfcOptions || {}) +if (!sfcOptions.script) { + sfcOptions.script = {} +} +// @ts-ignore only needed in 3.3 +sfcOptions.script.fs = { + fileExists(file: string) { + if (file.startsWith('/')) file = file.slice(1) + return !!store.state.files[file] + }, + readFile(file: string) { + if (file.startsWith('/')) file = file.slice(1) + return store.state.files[file].code + } +} + +store.init() -provide('store', props.store) +provide('store', store) provide('autoresize', props.autoResize) provide('import-map', toRef(props, 'showImportMap')) provide('clear-console', toRef(props, 'clearConsole'))