Skip to content

Commit

Permalink
perf(bridge): allow skipping legacy composition api support (nuxt#2388)
Browse files Browse the repository at this point in the history
  • Loading branch information
danielroe authored Dec 17, 2021
1 parent 03f9cfa commit daec432
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 3 deletions.
5 changes: 5 additions & 0 deletions docs/content/1.getting-started/3.bridge.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,11 @@ export default defineNuxtConfig({
// Disable composition API support
// capi: false,

// ... or just disable legacy composition API support
// capi: {
// legacy: false
// },

// Do not transpile modules
// transpile: false,

Expand Down
8 changes: 7 additions & 1 deletion packages/bridge/src/capi.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { createRequire } from 'module'
import { useNuxt, addPlugin, addPluginTemplate, addVitePlugin, addWebpackPlugin } from '@nuxt/kit'
import { resolve } from 'pathe'
import { BridgeConfig } from '../types'
import { distDir } from './dirs'
import { KeyPlugin } from './capi-legacy-key-plugin'

export function setupCAPIBridge (_options: any) {
export function setupCAPIBridge (options: Exclude<BridgeConfig['capi'], boolean>) {
const nuxt = useNuxt()

// Error if `@nuxtjs/composition-api` is added
Expand Down Expand Up @@ -36,6 +37,11 @@ export function setupCAPIBridge (_options: any) {
configs.forEach(config => config.entry.app.unshift(capiPluginPath))
})

if (options.legacy === false) {
// Skip adding `@nuxtjs/composition-api` handlers if legacy support is disabled
return
}

// Handle legacy `@nuxtjs/composition-api`
nuxt.options.alias['@nuxtjs/composition-api'] = resolve(distDir, 'runtime/capi.legacy.mjs')
nuxt.options.build.transpile.push('@nuxtjs/composition-api', '@vue/composition-api')
Expand Down
2 changes: 1 addition & 1 deletion packages/bridge/src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export default defineNuxtModule({
if (!opts.app) {
throw new Error('[bridge] Cannot enable composition-api with app disabled!')
}
await setupCAPIBridge(opts.capi)
await setupCAPIBridge(opts.capi === true ? {} : opts.capi)
}
if (opts.scriptSetup) {
await setupScriptSetup(opts.scriptSetup as ScriptSetupOptions)
Expand Down
4 changes: 3 additions & 1 deletion packages/bridge/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ export interface BridgeConfig {
nitro: boolean
vite: boolean
app: boolean | {}
capi: boolean | {}
capi: boolean | {
legacy?: boolean
}
scriptSetup: boolean | ScriptSetupOptions
autoImports: boolean
transpile: boolean
Expand Down

0 comments on commit daec432

Please sign in to comment.