From e528e6d72ca3a8a7fa1bad0354019f20d194ca86 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 19 Aug 2022 17:22:07 +0800 Subject: [PATCH 1/5] fix: rename options `autoImport` to `autoImports` --- docs/content/3.config/index.md | 2 +- src/nitro.ts | 5 +++-- src/options.ts | 19 ++++++++++--------- src/rollup/config.ts | 5 +++-- src/types/nitro.ts | 4 ++++ test/fixture/nitro.config.ts | 2 +- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/docs/content/3.config/index.md b/docs/content/3.config/index.md index 895ed7fff6..d7b9f8a633 100644 --- a/docs/content/3.config/index.md +++ b/docs/content/3.config/index.md @@ -95,7 +95,7 @@ Dev server options. You can use `watch` to make the dev server reload if any fil Watch options for development mode. See [chokidar](https://github.com/paulmillr/chokidar) for more information. -## `autoImport` +## `autoImports` Auto import options. See [unjs/unimport](https://github.com/unjs/unimport) for more information. diff --git a/src/nitro.ts b/src/nitro.ts index 59001f7a68..cf6ec7e281 100644 --- a/src/nitro.ts +++ b/src/nitro.ts @@ -65,8 +65,9 @@ export async function createNitro (config: NitroConfig = {}): Promise { } } - if (nitro.options.autoImport) { - nitro.unimport = createUnimport(nitro.options.autoImport) + const autoImportsOptions = nitro.options.autoImports || nitro.options.autoImport + if (autoImportsOptions) { + nitro.unimport = createUnimport(autoImportsOptions) // Support for importing from '#imports' nitro.options.virtual['#imports'] = () => nitro.unimport.toExports() // Backward compatibility diff --git a/src/options.ts b/src/options.ts index df55fad3ac..49ee87ad9b 100644 --- a/src/options.ts +++ b/src/options.ts @@ -36,7 +36,7 @@ const NitroDefaults: NitroConfig = { publicAssets: [], serverAssets: [], plugins: [], - autoImport: { + autoImports: { exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/], presets: nitroImports }, @@ -149,23 +149,24 @@ export async function loadOptions (userConfig: NitroConfig = {}): Promise i.includes('node_modules')) // .map(i => new RegExp(`(^|\\/)${escapeRE(i.split('node_modules/').pop())}(\\/|$)(?!node_modules\\/)`)) // ] - if (options.autoImport && Array.isArray(options.autoImport.exclude)) { - options.autoImport.exclude.push(options.buildDir) + const autoImportsOptions = options.autoImports || options.autoImport + if (autoImportsOptions && Array.isArray(autoImportsOptions.exclude)) { + autoImportsOptions.exclude.push(options.buildDir) } // Add h3 auto imports preset - if (options.autoImport) { + if (autoImportsOptions) { const h3Exports = await resolveModuleExportNames('h3', { url: import.meta.url }) - options.autoImport.presets.push({ + autoImportsOptions.presets.push({ from: 'h3', imports: h3Exports.filter(n => !n.match(/^[A-Z]/) && n !== 'use') }) diff --git a/src/rollup/config.ts b/src/rollup/config.ts index 5bed18a76e..307d10f784 100644 --- a/src/rollup/config.ts +++ b/src/rollup/config.ts @@ -121,8 +121,9 @@ export const getRollupConfig = (nitro: Nitro) => { rollupConfig.plugins.push(timing()) } - if (nitro.options.autoImport) { - rollupConfig.plugins.push(unimportPlugin.rollup(nitro.options.autoImport)) + const autoImportsOptions = nitro.options.autoImports || nitro.options.autoImport + if (autoImportsOptions) { + rollupConfig.plugins.push(unimportPlugin.rollup(autoImportsOptions)) } // Raw asset loader diff --git a/src/types/nitro.ts b/src/types/nitro.ts index 7e78e2dc06..c753a5852b 100644 --- a/src/types/nitro.ts +++ b/src/types/nitro.ts @@ -126,7 +126,11 @@ export interface NitroOptions { } serverAssets: ServerAssetDir[] publicAssets: PublicAssetDir[] + /** + * @deprecated renamed to `autoImports` + */ autoImport: UnimportPluginOptions | false + autoImports: UnimportPluginOptions | false plugins: string[] virtual: Record string | Promise)> diff --git a/test/fixture/nitro.config.ts b/test/fixture/nitro.config.ts index f4538c62c5..785e578b50 100644 --- a/test/fixture/nitro.config.ts +++ b/test/fixture/nitro.config.ts @@ -1,7 +1,7 @@ import { defineNitroConfig } from '../../src' export default defineNitroConfig({ - autoImport: { + autoImports: { presets: [ { // TODO: move this to built-in preset From bf63131615a48a6104137e4084b1978ad5e4d04b Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 23 Aug 2022 21:29:09 +0800 Subject: [PATCH 2/5] chore: update --- docs/content/3.config/index.md | 2 +- src/nitro.ts | 6 +++--- src/options.ts | 20 ++++++++++---------- src/rollup/config.ts | 6 +++--- src/types/nitro.ts | 4 ++-- test/fixture/nitro.config.ts | 2 +- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/content/3.config/index.md b/docs/content/3.config/index.md index d7b9f8a633..e01a36f6f2 100644 --- a/docs/content/3.config/index.md +++ b/docs/content/3.config/index.md @@ -95,7 +95,7 @@ Dev server options. You can use `watch` to make the dev server reload if any fil Watch options for development mode. See [chokidar](https://github.com/paulmillr/chokidar) for more information. -## `autoImports` +## `imports` Auto import options. See [unjs/unimport](https://github.com/unjs/unimport) for more information. diff --git a/src/nitro.ts b/src/nitro.ts index cf6ec7e281..d34cd03f85 100644 --- a/src/nitro.ts +++ b/src/nitro.ts @@ -65,9 +65,9 @@ export async function createNitro (config: NitroConfig = {}): Promise { } } - const autoImportsOptions = nitro.options.autoImports || nitro.options.autoImport - if (autoImportsOptions) { - nitro.unimport = createUnimport(autoImportsOptions) + const importsOptions = nitro.options.imports || nitro.options.autoImport + if (importsOptions) { + nitro.unimport = createUnimport(importsOptions) // Support for importing from '#imports' nitro.options.virtual['#imports'] = () => nitro.unimport.toExports() // Backward compatibility diff --git a/src/options.ts b/src/options.ts index 49ee87ad9b..bccb87fbc1 100644 --- a/src/options.ts +++ b/src/options.ts @@ -36,7 +36,7 @@ const NitroDefaults: NitroConfig = { publicAssets: [], serverAssets: [], plugins: [], - autoImports: { + imports: { exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/], presets: nitroImports }, @@ -149,24 +149,24 @@ export async function loadOptions (userConfig: NitroConfig = {}): Promise i.includes('node_modules')) // .map(i => new RegExp(`(^|\\/)${escapeRE(i.split('node_modules/').pop())}(\\/|$)(?!node_modules\\/)`)) // ] - const autoImportsOptions = options.autoImports || options.autoImport - if (autoImportsOptions && Array.isArray(autoImportsOptions.exclude)) { - autoImportsOptions.exclude.push(options.buildDir) + const importsOptions = options.imports || options.autoImport + if (importsOptions && Array.isArray(importsOptions.exclude)) { + importsOptions.exclude.push(options.buildDir) } // Add h3 auto imports preset - if (autoImportsOptions) { + if (importsOptions) { const h3Exports = await resolveModuleExportNames('h3', { url: import.meta.url }) - autoImportsOptions.presets.push({ + importsOptions.presets.push({ from: 'h3', imports: h3Exports.filter(n => !n.match(/^[A-Z]/) && n !== 'use') }) diff --git a/src/rollup/config.ts b/src/rollup/config.ts index 307d10f784..8f437a07fa 100644 --- a/src/rollup/config.ts +++ b/src/rollup/config.ts @@ -121,9 +121,9 @@ export const getRollupConfig = (nitro: Nitro) => { rollupConfig.plugins.push(timing()) } - const autoImportsOptions = nitro.options.autoImports || nitro.options.autoImport - if (autoImportsOptions) { - rollupConfig.plugins.push(unimportPlugin.rollup(autoImportsOptions)) + const importsOptions = nitro.options.imports || nitro.options.autoImport + if (importsOptions) { + rollupConfig.plugins.push(unimportPlugin.rollup(importsOptions)) } // Raw asset loader diff --git a/src/types/nitro.ts b/src/types/nitro.ts index c753a5852b..6be6cfb7ea 100644 --- a/src/types/nitro.ts +++ b/src/types/nitro.ts @@ -127,10 +127,10 @@ export interface NitroOptions { serverAssets: ServerAssetDir[] publicAssets: PublicAssetDir[] /** - * @deprecated renamed to `autoImports` + * @deprecated renamed to `imports` */ autoImport: UnimportPluginOptions | false - autoImports: UnimportPluginOptions | false + imports: UnimportPluginOptions | false plugins: string[] virtual: Record string | Promise)> diff --git a/test/fixture/nitro.config.ts b/test/fixture/nitro.config.ts index 785e578b50..e715b0ad06 100644 --- a/test/fixture/nitro.config.ts +++ b/test/fixture/nitro.config.ts @@ -1,7 +1,7 @@ import { defineNitroConfig } from '../../src' export default defineNitroConfig({ - autoImports: { + imports: { presets: [ { // TODO: move this to built-in preset From 27b75dac3acb0d4b94726b2fc4d662b351c1ab05 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Wed, 24 Aug 2022 21:26:54 +0200 Subject: [PATCH 3/5] improve backward compatibility handling --- src/options.ts | 17 ++++++++++++----- src/rollup/config.ts | 5 ++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/options.ts b/src/options.ts index bccb87fbc1..6f77cc8291 100644 --- a/src/options.ts +++ b/src/options.ts @@ -158,15 +158,22 @@ export async function loadOptions (userConfig: NitroConfig = {}): Promise new RegExp(`(^|\\/)${escapeRE(i.split('node_modules/').pop())}(\\/|$)(?!node_modules\\/)`)) // ] - const importsOptions = options.imports || options.autoImport - if (importsOptions && Array.isArray(importsOptions.exclude)) { - importsOptions.exclude.push(options.buildDir) + // Backward compatibility for options.autoImports + // TODO: Remove in major release + if (options.autoImport === false) { + options.imports = false + } else if (options.imports !== false) { + options.imports = options.autoImport = defu(options.imports, options.autoImport) + } + + if (options.imports && Array.isArray(options.imports.exclude)) { + options.imports.exclude.push(options.buildDir) } // Add h3 auto imports preset - if (importsOptions) { + if (options.imports) { const h3Exports = await resolveModuleExportNames('h3', { url: import.meta.url }) - importsOptions.presets.push({ + options.imports.presets.push({ from: 'h3', imports: h3Exports.filter(n => !n.match(/^[A-Z]/) && n !== 'use') }) diff --git a/src/rollup/config.ts b/src/rollup/config.ts index 8f437a07fa..89c9a88ced 100644 --- a/src/rollup/config.ts +++ b/src/rollup/config.ts @@ -121,9 +121,8 @@ export const getRollupConfig = (nitro: Nitro) => { rollupConfig.plugins.push(timing()) } - const importsOptions = nitro.options.imports || nitro.options.autoImport - if (importsOptions) { - rollupConfig.plugins.push(unimportPlugin.rollup(importsOptions)) + if (nitro.options.imports) { + rollupConfig.plugins.push(unimportPlugin.rollup(nitro.options.imports)) } // Raw asset loader From 53e8fbccff2d35e8db627900fe6d5a3c8e7bd94c Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Wed, 24 Aug 2022 21:28:29 +0200 Subject: [PATCH 4/5] remove todo from code (tricking via issue) --- src/nitro.ts | 5 ++--- src/options.ts | 10 ---------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/src/nitro.ts b/src/nitro.ts index d34cd03f85..87c36c43a0 100644 --- a/src/nitro.ts +++ b/src/nitro.ts @@ -65,9 +65,8 @@ export async function createNitro (config: NitroConfig = {}): Promise { } } - const importsOptions = nitro.options.imports || nitro.options.autoImport - if (importsOptions) { - nitro.unimport = createUnimport(importsOptions) + if (nitro.options.imports) { + nitro.unimport = createUnimport(nitro.options.imports) // Support for importing from '#imports' nitro.options.virtual['#imports'] = () => nitro.unimport.toExports() // Backward compatibility diff --git a/src/options.ts b/src/options.ts index 6f77cc8291..69b8375b9b 100644 --- a/src/options.ts +++ b/src/options.ts @@ -148,16 +148,6 @@ export async function loadOptions (userConfig: NitroConfig = {}): Promise i.includes('node_modules')) - // .map(i => new RegExp(`(^|\\/)${escapeRE(i.split('node_modules/').pop())}(\\/|$)(?!node_modules\\/)`)) - // ] - // Backward compatibility for options.autoImports // TODO: Remove in major release if (options.autoImport === false) { From 039d9d2cce3e4941ee60fd7a66f98454b3b6a715 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Wed, 24 Aug 2022 21:29:32 +0200 Subject: [PATCH 5/5] update deprecated message --- src/types/nitro.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/nitro.ts b/src/types/nitro.ts index 6be6cfb7ea..90efb89522 100644 --- a/src/types/nitro.ts +++ b/src/types/nitro.ts @@ -127,7 +127,7 @@ export interface NitroOptions { serverAssets: ServerAssetDir[] publicAssets: PublicAssetDir[] /** - * @deprecated renamed to `imports` + * @deprecated Please use `imports` option */ autoImport: UnimportPluginOptions | false imports: UnimportPluginOptions | false