|
import { getDevtoolsGlobalHook, getTarget, isProxyAvailable } from './env.js'; |
|
import { HOOK_SETUP } from './const.js'; |
|
import { ApiProxy } from './proxy.js'; |
|
export * from './api/index.js'; |
|
export * from './plugin.js'; |
|
export * from './time.js'; |
|
export function setupDevtoolsPlugin(pluginDescriptor, setupFn) { |
|
const descriptor = pluginDescriptor; |
|
const target = getTarget(); |
|
const hook = getDevtoolsGlobalHook(); |
|
const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; |
|
if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { |
|
hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); |
|
} |
|
else { |
|
const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; |
|
const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; |
|
list.push({ |
|
pluginDescriptor: descriptor, |
|
setupFn, |
|
proxy, |
|
}); |
|
if (proxy) { |
|
setupFn(proxy.proxiedTarget); |
|
} |
|
} |
|
} |
|
|