Skip to content

Commit

Permalink
perf(eslint-config): move some configs to async chunk
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Apr 5, 2024
1 parent d5f6f66 commit ebc27c5
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { FlatConfigItem } from 'eslint-flat-config-utils'

export default function base(): FlatConfigItem[] {
export default function ignores(): FlatConfigItem[] {
return [
{
ignores: [
Expand Down
8 changes: 7 additions & 1 deletion packages/eslint-config/src/flat/configs/stylistic.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
import stylistic from '@stylistic/eslint-plugin'
import type { StylisticCustomizeOptions } from '@stylistic/eslint-plugin'

export default stylistic.configs.customize
export default (options?: StylisticCustomizeOptions<true>) => {
return {
name: 'nuxt/stylistic',
...stylistic.configs.customize(options),
}
}
30 changes: 12 additions & 18 deletions packages/eslint-config/src/flat/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,9 @@ import gitignore from 'eslint-config-flat-gitignore'
import type { NuxtESLintConfigOptions } from './types'
import disables from './configs/disables'
import nuxt from './configs/nuxt'
import base from './configs/base'
import ignores from './configs/ignores'
import javascript from './configs/javascript'
import typescript from './configs/typescript'
import vue from './configs/vue'
import stylistic from './configs/stylistic'
import { resolveOptions } from './utils'
import imports from './configs/import'

export * from './types'

Expand All @@ -35,19 +31,20 @@ export function defineFlatConfigs(
*
* @see https://eslint.nuxt.com/packages/module
*/
export function createConfigForNuxt(options: NuxtESLintConfigOptions = {}): FlatConfigComposer<FlatConfigItem> {
export async function createConfigForNuxt(options: NuxtESLintConfigOptions = {}): Promise<FlatConfigComposer<FlatConfigItem>> {
const c = composer()

const resolved = resolveOptions(options)

if (resolved.features.standalone !== false) {
c.append(
gitignore({ strict: false }),
base(),
ignores(),
javascript(),
typescript(resolved),
vue(resolved),
imports(resolved),
// Make these imports async, as they are optional and imports plugins
import('./configs/typescript').then(m => m.default(resolved)),
import('./configs/vue').then(m => m.default(resolved)),
import('./configs/import').then(m => m.default(resolved)),
)
}

Expand All @@ -56,14 +53,11 @@ export function createConfigForNuxt(options: NuxtESLintConfigOptions = {}): Flat
)

if (resolved.features.stylistic) {
c.append({
name: 'nuxt/stylistic',
...stylistic(
resolved.features.stylistic === true
? {}
: resolved.features.stylistic,
),
})
c.append(import('./configs/stylistic').then(m => m.default(
typeof resolved.features.stylistic === 'boolean'
? {}
: resolved.features.stylistic,
)))
}

c.append(
Expand Down

0 comments on commit ebc27c5

Please sign in to comment.