diff --git a/src/devtools/index.js b/src/devtools/index.js index a8f06869d5..52cc77fe5e 100644 --- a/src/devtools/index.js +++ b/src/devtools/index.js @@ -7,7 +7,6 @@ import './plugins' import { parse } from '../util' import { isChrome, initEnv } from './env' import SharedData, { init as initSharedData, destroy as destroySharedData } from 'src/shared-data' -import storage from './storage' import VuexResolve from './views/vuex/resolve' for (const key in filters) { @@ -100,7 +99,7 @@ function initApp (shell) { initSharedData({ bridge, Vue, - storage + persist: true }) bridge.once('ready', version => { diff --git a/src/devtools/views/events/module.js b/src/devtools/views/events/module.js index 4533f9e18e..4e8df6900e 100644 --- a/src/devtools/views/events/module.js +++ b/src/devtools/views/events/module.js @@ -1,4 +1,4 @@ -import storage from '../../storage' +import storage from 'src/storage' import { classify } from 'src/util' import SharedData from 'src/shared-data' diff --git a/src/devtools/views/router/module.js b/src/devtools/views/router/module.js index 1a27b33a1e..520652e4d7 100644 --- a/src/devtools/views/router/module.js +++ b/src/devtools/views/router/module.js @@ -1,4 +1,4 @@ -import storage from '../../storage' +import storage from 'src/storage' const ENABLED_KEY = 'EVENTS_ENABLED' const enabled = storage.get(ENABLED_KEY) diff --git a/src/devtools/views/routes/module.js b/src/devtools/views/routes/module.js index cb1c1710ba..f8854de587 100644 --- a/src/devtools/views/routes/module.js +++ b/src/devtools/views/routes/module.js @@ -1,4 +1,4 @@ -import storage from '../../storage' +import storage from 'src/storage' const ENABLED_KEY = 'EVENTS_ENABLED' const enabled = storage.get(ENABLED_KEY) diff --git a/src/shared-data.js b/src/shared-data.js index ddc6e01cc5..e6aa8928ff 100644 --- a/src/shared-data.js +++ b/src/shared-data.js @@ -1,3 +1,5 @@ +import storage from './storage' + // Initial state const internalSharedData = { openInEditorHost: '/', @@ -24,8 +26,6 @@ const persisted = [ let Vue let bridge -// Storage API -let storage = null // List of fields to persist to storage (disabled if 'false') // This should be unique to each shared data client to prevent conflicts let persist = false @@ -36,23 +36,19 @@ export function init (params) { // Mandatory params bridge = params.bridge Vue = params.Vue - - if (params.hasOwnProperty('storage')) { - storage = params.storage - persist = persisted - } + persist = !!params.persist // Load persisted fields - if (persist) { - persist.forEach(key => { - const value = storage.get(`shared-data:${key}`) - if (value !== null) { - internalSharedData[key] = value - // Send to other shared data clients + persisted.forEach(key => { + const value = storage.get(`shared-data:${key}`) + if (value !== null) { + internalSharedData[key] = value + // Send to other shared data clients + if (persist) { sendValue(key, value) } - }) - } + } + }) // Wrapper Vue instance vm = new Vue({ @@ -72,7 +68,7 @@ export function destroy () { function setValue (key, value) { // Storage - if (persist && persist.includes(key)) { + if (persist && persisted.includes(key)) { storage.set(`shared-data:${key}`, value) } vm[key] = value diff --git a/src/devtools/storage.js b/src/storage.js similarity index 100% rename from src/devtools/storage.js rename to src/storage.js