Skip to content

Commit ebc27c5

Browse files
committedApr 5, 2024·
perf(eslint-config): move some configs to async chunk
1 parent d5f6f66 commit ebc27c5

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed
 

‎packages/eslint-config/src/flat/configs/base.ts ‎packages/eslint-config/src/flat/configs/ignores.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { FlatConfigItem } from 'eslint-flat-config-utils'
22

3-
export default function base(): FlatConfigItem[] {
3+
export default function ignores(): FlatConfigItem[] {
44
return [
55
{
66
ignores: [
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
import stylistic from '@stylistic/eslint-plugin'
2+
import type { StylisticCustomizeOptions } from '@stylistic/eslint-plugin'
23

3-
export default stylistic.configs.customize
4+
export default (options?: StylisticCustomizeOptions<true>) => {
5+
return {
6+
name: 'nuxt/stylistic',
7+
...stylistic.configs.customize(options),
8+
}
9+
}

‎packages/eslint-config/src/flat/index.ts

+12-18
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,9 @@ import gitignore from 'eslint-config-flat-gitignore'
44
import type { NuxtESLintConfigOptions } from './types'
55
import disables from './configs/disables'
66
import nuxt from './configs/nuxt'
7-
import base from './configs/base'
7+
import ignores from './configs/ignores'
88
import javascript from './configs/javascript'
9-
import typescript from './configs/typescript'
10-
import vue from './configs/vue'
11-
import stylistic from './configs/stylistic'
129
import { resolveOptions } from './utils'
13-
import imports from './configs/import'
1410

1511
export * from './types'
1612

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

4137
const resolved = resolveOptions(options)
4238

4339
if (resolved.features.standalone !== false) {
4440
c.append(
4541
gitignore({ strict: false }),
46-
base(),
42+
ignores(),
4743
javascript(),
48-
typescript(resolved),
49-
vue(resolved),
50-
imports(resolved),
44+
// Make these imports async, as they are optional and imports plugins
45+
import('./configs/typescript').then(m => m.default(resolved)),
46+
import('./configs/vue').then(m => m.default(resolved)),
47+
import('./configs/import').then(m => m.default(resolved)),
5148
)
5249
}
5350

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

5855
if (resolved.features.stylistic) {
59-
c.append({
60-
name: 'nuxt/stylistic',
61-
...stylistic(
62-
resolved.features.stylistic === true
63-
? {}
64-
: resolved.features.stylistic,
65-
),
66-
})
56+
c.append(import('./configs/stylistic').then(m => m.default(
57+
typeof resolved.features.stylistic === 'boolean'
58+
? {}
59+
: resolved.features.stylistic,
60+
)))
6761
}
6862

6963
c.append(

0 commit comments

Comments
 (0)
Please sign in to comment.