Skip to content

Commit d4f4f48

Browse files
authored
perf: use granular imports for auto-importing composables (#964)
1 parent 2e0b043 commit d4f4f48

File tree

7 files changed

+38
-37
lines changed

7 files changed

+38
-37
lines changed

packages/bridge/src/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export async function setupAppBridge (_options: any) {
1111
const nuxt = useNuxt()
1212

1313
// Setup aliases
14-
nuxt.options.alias['#app'] = resolve(distDir, 'runtime/index')
14+
nuxt.options.alias['#app'] = resolve(distDir, 'runtime')
1515
nuxt.options.alias['nuxt3/app'] = nuxt.options.alias['#app']
1616
nuxt.options.alias['nuxt/app'] = nuxt.options.alias['#app']
1717
nuxt.options.alias['#build'] = nuxt.options.buildDir

packages/bridge/src/imports/presets.ts

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,43 +10,44 @@ export const commonPresets: InlinePreset[] = [
1010
}),
1111
// vue-demi (mocked)
1212
defineUnimportPreset({
13-
from: '#app',
13+
from: '#app/app',
1414
imports: [
1515
'isVue2',
1616
'isVue3'
1717
]
1818
})
1919
]
2020

21-
export const appPreset = defineUnimportPreset({
22-
from: '#app',
23-
imports: [
24-
'useLazyAsyncData',
25-
'refreshNuxtData',
26-
'defineNuxtComponent',
27-
'useNuxtApp',
28-
'defineNuxtPlugin',
29-
'useRuntimeConfig',
30-
'useState',
31-
'useLazyFetch',
32-
'useCookie',
33-
'useRequestHeaders',
34-
'useRequestEvent',
35-
'useRouter',
36-
'useRoute',
37-
'defineNuxtRouteMiddleware',
38-
'navigateTo',
39-
'abortNavigation',
40-
'addRouteMiddleware',
41-
'useNuxt2Meta',
42-
'clearError',
43-
'createError',
44-
'isNuxtError',
45-
'throwError',
46-
'showError',
47-
'useError'
48-
]
49-
})
21+
const granularAppPresets: InlinePreset[] = [
22+
{
23+
imports: ['defineNuxtComponent', 'setNuxtAppInstance', 'useNuxtApp', 'defineNuxtPlugin'],
24+
from: '#app/app'
25+
},
26+
{
27+
imports: ['useRuntimeConfig', 'useNuxt2Meta', 'useRoute', 'useRouter', 'useState', 'abortNavigation', 'addRouteMiddleware', 'defineNuxtRouteMiddleware', 'navigateTo'],
28+
from: '#app/composables'
29+
},
30+
{
31+
imports: ['useLazyAsyncData', 'refreshNuxtData'],
32+
from: '#app/asyncData'
33+
},
34+
{
35+
imports: ['clearError', 'createError', 'isNuxtError', 'showError', 'useError', 'throwError'],
36+
from: '#app/error'
37+
},
38+
{
39+
imports: ['useLazyFetch'],
40+
from: '#app/fetch'
41+
},
42+
{
43+
imports: ['useCookie'],
44+
from: '#app/cookie'
45+
},
46+
{
47+
imports: ['useRequestHeaders', 'useRequestEvent'],
48+
from: '#app/ssr'
49+
}
50+
]
5051

5152
export const vueKeys: Array<keyof typeof import('vue')> = [
5253
// Lifecycle
@@ -125,7 +126,7 @@ const vueRouterPreset = defineUnimportPreset({
125126

126127
export const defaultPresets = [
127128
...commonPresets,
128-
appPreset,
129+
...granularAppPresets,
129130
vueRouterPreset,
130131
vuePreset
131132
]

packages/bridge/src/runtime/app.plugin.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Vue, { version } from 'vue'
22
import { createHooks } from 'hookable'
3-
import { setNuxtAppInstance } from '#app'
3+
import { setNuxtAppInstance } from '#app/app'
44
import { globalMiddleware } from '#build/global-middleware'
55

66
// Reshape payload to match key `useLazyAsyncData` expects

packages/bridge/src/runtime/capi.plugin.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { defineNuxtPlugin } from '#app'
1+
import { defineNuxtPlugin } from '#imports'
22

33
export default defineNuxtPlugin((nuxtApp) => {
44
const _originalSetup = nuxtApp.nuxt2Context.app.setup

packages/bridge/src/runtime/nitro-bridge.server.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { defineNuxtPlugin } from '#app'
1+
import { defineNuxtPlugin } from '#imports'
22

33
const vueMetaRenderer = (nuxt) => {
44
const meta = nuxt.ssrContext.meta.inject({

playground/middleware/redirect.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { defineNuxtRouteMiddleware, abortNavigation } from '#app'
1+
import { defineNuxtRouteMiddleware, abortNavigation } from '#imports'
22

33
export default defineNuxtRouteMiddleware((to) => {
44
if ('abort' in to.query) {

playground/plugins/setup.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { onGlobalSetup, ref } from '@nuxtjs/composition-api'
22

3-
import { defineNuxtPlugin, addRouteMiddleware, navigateTo } from '#app'
3+
import { defineNuxtPlugin, addRouteMiddleware, navigateTo } from '#imports'
44

55
export default defineNuxtPlugin(() => {
66
const globalsetup = ref('🚧')

0 commit comments

Comments
 (0)