Skip to content

Commit 018b785

Browse files
committedMar 28, 2024·
fix: try fix windows path resolution
1 parent e30793f commit 018b785

File tree

5 files changed

+45
-30
lines changed

5 files changed

+45
-30
lines changed
 

‎packages/eslint-config/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"@stylistic/eslint-plugin": "^1.7.0",
3434
"@typescript-eslint/eslint-plugin": "^7.4.0",
3535
"@typescript-eslint/parser": "^7.4.0",
36-
"eslint-flat-config-utils": "^0.1.0",
36+
"eslint-flat-config-utils": "^0.1.2",
3737
"eslint-plugin-vue": "^9.24.0",
3838
"globals": "^15.0.0",
3939
"pathe": "^1.1.2",

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

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
import type { Awaitable, NuxtESLintConfigOptions } from './types'
1+
import type { NuxtESLintConfigOptions } from './types'
22
import disables from './configs/disables'
33
import nuxt from './configs/nuxt'
44
import base from './configs/base'
55
import javascript from './configs/javascript'
66
import typescript from './configs/typescript'
77
import vue from './configs/vue'
88
import stylistic from './configs/stylistic'
9-
import type { FlatConfigPipeline, FlatConfigItem } from 'eslint-flat-config-utils'
9+
import type { FlatConfigItem, ResolvableFlatConfig } from 'eslint-flat-config-utils'
10+
import { FlatConfigPipeline } from 'eslint-flat-config-utils'
1011
import { pipe } from 'eslint-flat-config-utils'
1112

1213
export * from './types'
@@ -17,8 +18,10 @@ export * from './types'
1718
* This function takes flat config item, or an array of them as rest arguments.
1819
* It also automatically resolves the promise if the config item is a promise.
1920
*/
20-
export function defineFlatConfigs(...configs: Awaitable<FlatConfigItem | FlatConfigItem[]>[]): FlatConfigPipeline<FlatConfigItem> {
21-
return pipe(...configs)
21+
export function defineFlatConfigs(
22+
...configs: ResolvableFlatConfig[]
23+
): FlatConfigPipeline<FlatConfigItem> {
24+
return new FlatConfigPipeline().append(...configs)
2225
}
2326

2427
/**

‎packages/module/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@
4343
}
4444
},
4545
"dependencies": {
46-
"@nuxt/devtools-kit": "^1.1.4",
46+
"@nuxt/devtools-kit": "^1.1.5",
4747
"@nuxt/eslint-config": "workspace:*",
4848
"@nuxt/eslint-plugin": "workspace:*",
4949
"@nuxt/kit": "^3.11.1",
5050
"chokidar": "^3.6.0",
51-
"eslint-flat-config-utils": "^0.1.0",
51+
"eslint-flat-config-utils": "^0.1.2",
5252
"eslint-flat-config-viewer": "^0.1.14",
53+
"eslint-typegen": "^0.1.5",
5354
"get-port-please": "^3.1.2",
54-
"eslint-typegen": "^0.1.4",
5555
"pathe": "^1.1.2",
5656
"unimport": "^3.7.1"
5757
},

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

+20-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { addTemplate, resolvePath } from '@nuxt/kit'
1+
import { addTemplate, tryResolveModule } from '@nuxt/kit'
22
import { stringifyImports } from 'unimport'
33
import type { Import } from 'unimport'
44
import type { Nuxt } from '@nuxt/schema'
@@ -8,6 +8,7 @@ import type { ESLintConfigGenAddon } from '../types'
88
import type { NuxtESLintConfigOptions } from '@nuxt/eslint-config/flat'
99
import type { ConfigGenOptions, ModuleOptions } from '../module'
1010
import { createAddonGlobals } from '../config-addons/globals'
11+
import { isAbsolute } from 'path'
1112

1213
export async function setupConfigGen(options: ModuleOptions, nuxt: Nuxt) {
1314
const defaultAddons = [
@@ -57,24 +58,22 @@ async function generateESLintConfig(options: ModuleOptions, nuxt: Nuxt, addons:
5758
...typeof options.config !== 'boolean' ? options.config || {} : {},
5859
}
5960

60-
const flatConfigEntry = await resolvePath('@nuxt/eslint-config/flat', { cwd: import.meta.url })
61-
6261
importLines.push(
6362
{
64-
from: await resolvePath('eslint-flat-config-utils', { cwd: import.meta.url }),
63+
from: 'eslint-flat-config-utils',
6564
name: 'pipe',
6665
},
6766
{
68-
from: await resolvePath('eslint-typegen', { cwd: import.meta.url }),
67+
from: 'eslint-typegen',
6968
name: 'default',
7069
as: 'typegen',
7170
},
7271
{
73-
from: flatConfigEntry,
72+
from: '@nuxt/eslint-config/flat',
7473
name: 'createConfigForNuxt',
7574
},
7675
{
77-
from: flatConfigEntry,
76+
from: '@nuxt/eslint-config/flat',
7877
name: 'defineFlatConfigs',
7978
},
8079
)
@@ -97,11 +96,24 @@ async function generateESLintConfig(options: ModuleOptions, nuxt: Nuxt, addons:
9796
configItems.push(...resolved.configs)
9897
}
9998

99+
async function resolveModule(id: string) {
100+
if (id && (id.includes('://') || isAbsolute(id)))
101+
return id
102+
return await tryResolveModule(id, import.meta.url) || id
103+
}
104+
105+
const imports = await Promise.all(importLines.map(async (line): Promise<Import> => {
106+
return {
107+
...line,
108+
from: await resolveModule(line.from),
109+
}
110+
}))
111+
100112
return [
101113
'// ESLint config generated by Nuxt',
102114
'/// <reference path="./eslint-typegen.d.ts" />',
103115
'',
104-
stringifyImports(importLines, false),
116+
stringifyImports(imports, false),
105117
'',
106118
'export { defineFlatConfigs }',
107119
'',

‎pnpm-lock.yaml

+14-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
Please sign in to comment.