@@ -8,11 +8,12 @@ import type {
8
8
PluginSettings ,
9
9
RuleContext ,
10
10
Resolver ,
11
+ LegacyResolver ,
11
12
ResolvedResult ,
12
13
} from '../types'
13
14
14
15
import { ModuleCache } from './module-cache'
15
- import { normalizeConfigResolvers } from './legacy-resolver-settings'
16
+ import { normalizeConfigResolvers , resolveWithLegacyResolver } from './legacy-resolver-settings'
16
17
17
18
export const CASE_SENSITIVE_FS = ! fs . existsSync (
18
19
path . resolve (
@@ -98,49 +99,38 @@ function fullResolve(
98
99
return { found : true , path : cachedPath }
99
100
}
100
101
101
- function withResolver ( resolver : Resolver , config : unknown ) : ResolvedResult {
102
- if ( resolver . interfaceVersion === 2 ) {
103
- return resolver . resolve ( modulePath , sourceFile , config )
104
- }
102
+ if ( Object . prototype . hasOwnProperty . call ( settings , 'import-x/resolver-next' ) && settings [ 'import-x/resolver-next' ] ) {
103
+ const configResolvers = settings [ 'import-x/resolver-next' ]
105
104
106
- try {
107
- const resolved = resolver . resolveImport ( modulePath , sourceFile , config )
108
- if ( resolved === undefined ) {
109
- return {
110
- found : false ,
111
- }
112
- }
113
- return {
114
- found : true ,
115
- path : resolved ,
116
- }
117
- } catch {
118
- return {
119
- found : false ,
105
+ for ( const resolver of configResolvers ) {
106
+ const resolved = resolver . resolve ( modulePath , sourceFile )
107
+ if ( ! resolved . found ) {
108
+ continue
120
109
}
121
- }
122
- }
123
-
124
- const configResolvers = settings [ 'import-x/resolver' ] || {
125
- node : settings [ 'import-x/resolve' ] ,
126
- } // backward compatibility
127
110
128
- const resolvers = normalizeConfigResolvers ( configResolvers , sourceFile )
129
-
130
- for ( const { enable, options, resolver } of resolvers ) {
131
- if ( ! enable ) {
132
- continue
111
+ // else, counts
112
+ fileExistsCache . set ( cacheKey , resolved . path as string | null )
113
+ return resolved
133
114
}
115
+ } else {
116
+ const configResolvers = settings [ 'import-x/resolver' ] || {
117
+ node : settings [ 'import-x/resolve' ] ,
118
+ } // backward compatibility
119
+
120
+ for ( const { enable, options, resolver } of normalizeConfigResolvers ( configResolvers , sourceFile ) ) {
121
+ if ( ! enable ) {
122
+ continue
123
+ }
134
124
135
- const resolved = withResolver ( resolver , options )
125
+ const resolved = resolveWithLegacyResolver ( resolver , options , modulePath , sourceFile )
126
+ if ( ! resolved . found ) {
127
+ continue
128
+ }
136
129
137
- if ( ! resolved . found ) {
138
- continue
130
+ // else, counts
131
+ fileExistsCache . set ( cacheKey , resolved . path as string | null )
132
+ return resolved
139
133
}
140
-
141
- // else, counts
142
- fileExistsCache . set ( cacheKey , resolved . path as string | null )
143
- return resolved
144
134
}
145
135
146
136
// failed
0 commit comments