Skip to content

Commit 3db4702

Browse files
committed
refactor: wait for app record in plugin
1 parent fe1b833 commit 3db4702

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

packages/app-backend-core/src/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ async function registerAppJob (options: AppRecordOptions, ctx: BackendContext) {
7575
record.instanceMap.set(rootId, record.rootInstance)
7676
record.rootInstance.__VUE_DEVTOOLS_UID__ = rootId
7777
await ctx.api.registerApplication(record)
78-
ctx.appRecords.push(record)
7978
addBuiltinLayers(options.app, ctx)
79+
ctx.appRecords.push(record)
8080

8181
ctx.bridge.send(BridgeEvents.TO_FRONT_APP_ADD, {
8282
appRecord: mapAppRecord(record)

packages/app-backend-core/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,8 @@ async function connect () {
275275
addPreviouslyRegisteredPlugins(ctx)
276276
addQueuedPlugins(ctx)
277277

278-
hook.on(HookEvents.SETUP_DEVTOOLS_PLUGIN, (pluginDescriptor: PluginDescriptor, setupFn: SetupFunction) => {
279-
addPlugin(pluginDescriptor, setupFn, ctx)
278+
hook.on(HookEvents.SETUP_DEVTOOLS_PLUGIN, async (pluginDescriptor: PluginDescriptor, setupFn: SetupFunction) => {
279+
await addPlugin(pluginDescriptor, setupFn, ctx)
280280
})
281281

282282
// Legacy flush

packages/app-backend-core/src/plugin.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import { PluginDescriptor, SetupFunction } from '@vue/devtools-api'
22
import { Plugin, BackendContext, DevtoolsPluginApiInstance } from '@vue-devtools/app-backend-api'
33
import { BridgeEvents, target } from '@vue-devtools/shared-utils'
4-
import { getAppRecordId } from './app'
4+
import { getAppRecord, getAppRecordId } from './app'
55

6-
export function addPlugin (pluginDescriptor: PluginDescriptor, setupFn: SetupFunction, ctx: BackendContext) {
6+
export async function addPlugin (pluginDescriptor: PluginDescriptor, setupFn: SetupFunction, ctx: BackendContext) {
77
const plugin: Plugin = {
88
descriptor: pluginDescriptor,
99
setupFn,
1010
error: null
1111
}
1212
ctx.currentPlugin = plugin
1313
try {
14+
await getAppRecord(plugin.descriptor.app, ctx)
1415
const api = new DevtoolsPluginApiInstance(plugin, ctx)
1516
setupFn(api)
1617
} catch (e) {
@@ -33,7 +34,7 @@ export function addPlugin (pluginDescriptor: PluginDescriptor, setupFn: SetupFun
3334
export async function addQueuedPlugins (ctx: BackendContext) {
3435
if (target.__VUE_DEVTOOLS_PLUGINS__ && Array.isArray(target.__VUE_DEVTOOLS_PLUGINS__)) {
3536
for (const plugin of target.__VUE_DEVTOOLS_PLUGINS__) {
36-
addPlugin(plugin.pluginDescriptor, plugin.setupFn, ctx)
37+
await addPlugin(plugin.pluginDescriptor, plugin.setupFn, ctx)
3738
}
3839
target.__VUE_DEVTOOLS_PLUGINS__ = null
3940
}
@@ -42,7 +43,7 @@ export async function addQueuedPlugins (ctx: BackendContext) {
4243
export async function addPreviouslyRegisteredPlugins (ctx: BackendContext) {
4344
if (target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__ && Array.isArray(target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__)) {
4445
for (const plugin of target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__) {
45-
addPlugin(plugin.pluginDescriptor, plugin.setupFn, ctx)
46+
await addPlugin(plugin.pluginDescriptor, plugin.setupFn, ctx)
4647
}
4748
}
4849
}

packages/app-frontend/src/features/plugin/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,13 @@ function addPlugin (plugin: Plugin) {
6868
}
6969

7070
export function setupPluginsBridgeEvents (bridge: Bridge) {
71-
bridge.on(BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_ADD, ({ plugin }) => {
72-
addPlugin(plugin)
71+
bridge.on(BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_ADD, async ({ plugin }) => {
72+
await addPlugin(plugin)
7373
})
7474

75-
bridge.on(BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_LIST, ({ plugins }) => {
75+
bridge.on(BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_LIST, async ({ plugins }) => {
7676
for (const plugin of plugins) {
77-
addPlugin(plugin)
77+
await addPlugin(plugin)
7878
}
7979
})
8080

0 commit comments

Comments
 (0)