45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
/* eslint-disable new-cap */
|
|
|
|
import * as Vue from 'vue'
|
|
import App from 'virtual:vue-inspector-path:Overlay.vue'
|
|
import inspectorOptions from 'virtual:vue-inspector-options'
|
|
const CONTAINER_ID = 'vue-inspector-container'
|
|
|
|
function createInspectorContainer() {
|
|
if (document.getElementById(CONTAINER_ID) != null)
|
|
throw new Error('vueInspectorContainer element already exists')
|
|
|
|
const el = document.createElement('div')
|
|
el.setAttribute('id', CONTAINER_ID)
|
|
document.getElementsByTagName('body')[0].appendChild(el)
|
|
return el
|
|
}
|
|
|
|
function load() {
|
|
const isClient = typeof window !== 'undefined'
|
|
if (!isClient)
|
|
return
|
|
createInspectorContainer()
|
|
const { vue } = inspectorOptions
|
|
// vue 2/3 compatibility
|
|
vue === 3
|
|
? Vue.createApp({
|
|
render: () => Vue.h(App),
|
|
devtools: {
|
|
hide: true,
|
|
},
|
|
}).mount(`#${CONTAINER_ID}`)
|
|
: new Vue.default({
|
|
render: h => h(App),
|
|
devtools: {
|
|
hide: true,
|
|
},
|
|
}).$mount(`#${CONTAINER_ID}`)
|
|
}
|
|
|
|
if (inspectorOptions.lazyLoad)
|
|
setTimeout(load, inspectorOptions.lazyLoad)
|
|
|
|
else
|
|
load()
|