Skip to content

Commit fc4c72c

Browse files
SukkaWJounQin
andauthored
fix: accept non-array resolver in resolver-next setting (#321)
Co-authored-by: JounQin <[email protected]>
1 parent f193e73 commit fc4c72c

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

.changeset/cyan-icons-fetch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-import-x": patch
3+
---
4+
5+
fix: accept non-array resolver in `resolver-next` setting

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export interface ImportSettings {
101101
resolve?: NodeResolverOptions
102102
resolver?: LegacyImportResolver
103103
'resolver-legacy'?: LegacyImportResolver
104-
'resolver-next'?: NewResolver[]
104+
'resolver-next'?: NewResolver[] | NewResolver
105105
}
106106

107107
export type WithPluginName<T extends string | object> = T extends string

src/utils/resolve.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@ function fullResolve(
145145
Object.prototype.hasOwnProperty.call(settings, 'import-x/resolver-next') &&
146146
settings['import-x/resolver-next']
147147
) {
148-
const configResolvers = settings['import-x/resolver-next']
148+
let configResolvers = settings['import-x/resolver-next']
149+
150+
if (!Array.isArray(configResolvers)) {
151+
configResolvers = [configResolvers]
152+
}
149153

150154
for (let i = 0, len = configResolvers.length; i < len; i++) {
151155
const resolver = configResolvers[i]

test/utils/resolve.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,15 @@ describe('resolve', () => {
162162
expect(resolve('../fixtures/foo', context)).toBe(testFilePath('./bar.jsx'))
163163
})
164164

165+
it('non-array resolver interface v3', () => {
166+
const context = testContext({
167+
'import-x/resolver-next': require<{
168+
foobarResolver: NewResolver
169+
}>('../fixtures/foo-bar-resolver-v3').foobarResolver,
170+
})
171+
expect(resolve('../fixtures/foo', context)).toBe(testFilePath('./bar.jsx'))
172+
})
173+
165174
it('reports invalid import-x/resolver config', () => {
166175
const context = testContext({
167176
// @ts-expect-error - testing

0 commit comments

Comments
 (0)