Skip to content

Commit 86f7940

Browse files
committed
feat: allow override rootdir for generated configs
1 parent 52e50a5 commit 86f7940

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

packages/module/src/modules/config/generate.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export async function generateESLintConfig(
5555
},
5656
)
5757

58-
const dirs = getDirs(nuxt) || {}
58+
const dirs = getDirs(nuxt, options) || {}
5959

6060
for (const addon of addons) {
6161
const resolved = await addon.getConfigs()

packages/module/src/modules/config/utils.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import type { Nuxt } from '@nuxt/schema'
22
import { relative, resolve } from 'pathe'
33
import type { NuxtESLintConfigOptions } from '@nuxt/eslint-config/flat'
4+
import type { ModuleOptions } from '../../types'
5+
6+
export function getDirs(nuxt: Nuxt, options: ModuleOptions): NuxtESLintConfigOptions['dirs'] {
7+
const rootDir = (typeof options.config === 'object' && options.config.rootDir) || nuxt.options.rootDir
48

5-
export function getDirs(nuxt: Nuxt): NuxtESLintConfigOptions['dirs'] {
69
const dirs: Required<NuxtESLintConfigOptions['dirs']> = {
710
pages: [],
811
composables: [],
@@ -13,12 +16,12 @@ export function getDirs(nuxt: Nuxt): NuxtESLintConfigOptions['dirs'] {
1316
middleware: [],
1417
modules: [],
1518
servers: [],
16-
root: [nuxt.options.rootDir],
19+
root: [],
1720
src: [],
1821
}
1922

2023
for (const layer of nuxt.options._layers) {
21-
const r = (t: string) => relative(nuxt.options.rootDir, resolve(layer.config.srcDir, t.replace(/^~[/\\]/, '')))
24+
const r = (t: string) => relative(rootDir, resolve(layer.config.srcDir, t.replace(/^~[/\\]/, '')))
2225

2326
dirs.src.push(r(''))
2427
dirs.pages.push(r(nuxt.options.dir.pages || 'pages'))

packages/module/src/types.ts

+8
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ export interface ConfigGenOptions extends NuxtESLintFeaturesOptions {
2626
* @default true
2727
*/
2828
autoInit?: boolean
29+
30+
/**
31+
* Override rootDir for the generated ESLint config
32+
* If you generate ESLint config from a different directory, you can set this option
33+
*
34+
* @default nuxt.options.rootDir
35+
*/
36+
rootDir?: string
2937
}
3038

3139
export interface CheckerOptions {

0 commit comments

Comments
 (0)