Skip to content

Commit

Permalink
refactor!: rename options autoImport to imports (unjs#433)
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu authored and WinterYukky committed Nov 1, 2022
1 parent 5b7cd43 commit e57d74e
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 21 deletions.
2 changes: 1 addition & 1 deletion docs/content/3.config/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
## `imports`

Auto import options. See [unjs/unimport](https://github.com/unjs/unimport) for more information.

Expand Down
4 changes: 2 additions & 2 deletions src/nitro.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ export async function createNitro (config: NitroConfig = {}): Promise<Nitro> {
}
}

if (nitro.options.autoImport) {
nitro.unimport = createUnimport(nitro.options.autoImport)
if (nitro.options.imports) {
nitro.unimport = createUnimport(nitro.options.imports)
// Support for importing from '#imports'
nitro.options.virtual['#imports'] = () => nitro.unimport.toExports()
// Backward compatibility
Expand Down
28 changes: 13 additions & 15 deletions src/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const NitroDefaults: NitroConfig = {
publicAssets: [],
serverAssets: [],
plugins: [],
autoImport: {
imports: {
exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/],
presets: nitroImports
},
Expand Down Expand Up @@ -152,24 +152,22 @@ export async function loadOptions (userConfig: NitroConfig = {}): Promise<NitroO
options.scanDirs = [options.srcDir]
}

// TODO: https://github.com/unjs/nitro/issues/294
// options.autoImport.include = [
// ...Array.isArray(options.autoImport.include)
// ? options.autoImport.include
// : [options.autoImport.include].filter(Boolean),
// ...options.scanDirs
// .filter(i => 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)
// 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 (options.autoImport) {
if (options.imports) {
const h3Exports = await resolveModuleExportNames('h3', { url: import.meta.url })
options.autoImport.presets.push({
options.imports.presets.push({
from: 'h3',
imports: h3Exports.filter(n => !n.match(/^[A-Z]/) && n !== 'use')
})
Expand Down
4 changes: 2 additions & 2 deletions src/rollup/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,8 @@ export const getRollupConfig = (nitro: Nitro) => {
rollupConfig.plugins.push(timing())
}

if (nitro.options.autoImport) {
rollupConfig.plugins.push(unimportPlugin.rollup(nitro.options.autoImport))
if (nitro.options.imports) {
rollupConfig.plugins.push(unimportPlugin.rollup(nitro.options.imports))
}

// Raw asset loader
Expand Down
4 changes: 4 additions & 0 deletions src/types/nitro.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,11 @@ export interface NitroOptions {
}
serverAssets: ServerAssetDir[]
publicAssets: PublicAssetDir[]
/**
* @deprecated Please use `imports` option
*/
autoImport: UnimportPluginOptions | false
imports: UnimportPluginOptions | false
plugins: string[]
virtual: Record<string, string | (() => string | Promise<string>)>

Expand Down
2 changes: 1 addition & 1 deletion test/fixture/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { defineNitroConfig } from '../../src'

export default defineNitroConfig({
autoImport: {
imports: {
presets: [
{
// TODO: move this to built-in preset
Expand Down

0 comments on commit e57d74e

Please sign in to comment.