From 5aa33b807cddccb35ec559f8223495ea1e0f96d3 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 2 Nov 2021 09:45:44 +0000 Subject: [PATCH] feat(bridge): allow accessing injections from `useNuxtApp` (#1623) --- packages/bridge/src/runtime/app.plugin.mjs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/bridge/src/runtime/app.plugin.mjs b/packages/bridge/src/runtime/app.plugin.mjs index 5640d412b5..6c9f22c4a2 100644 --- a/packages/bridge/src/runtime/app.plugin.mjs +++ b/packages/bridge/src/runtime/app.plugin.mjs @@ -14,7 +14,7 @@ export default (ctx, inject) => { mount: () => { }, provide: inject, unmount: () => { }, - use(vuePlugin) { + use (vuePlugin) { vuePlugin.install(this) }, version: Vue.version @@ -42,7 +42,16 @@ export default (ctx, inject) => { nuxtApp.vue2App = this }) - setNuxtAppInstance(nuxtApp) + const proxiedApp = new Proxy(nuxtApp, { + get (target, prop) { + if (prop[0] === '$') { + return target.nuxt2Context[prop] || target.vue2App?.[prop] + } + return Reflect.get(target, prop) + } + }) - inject('_nuxtApp', nuxtApp) + setNuxtAppInstance(proxiedApp) + + inject('_nuxtApp', proxiedApp) }