File tree Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -71,6 +71,7 @@ import type {
71
71
PluginFlatBaseConfig ,
72
72
PluginFlatConfig ,
73
73
} from './types'
74
+ import { importXResolverCompat } from './utils'
74
75
75
76
const rules = {
76
77
'no-unresolved' : noUnresolved ,
@@ -181,4 +182,5 @@ export = {
181
182
configs,
182
183
flatConfigs,
183
184
rules,
185
+ importXResolverCompat
184
186
}
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import stableHash from 'stable-hash'
5
5
6
6
import type {
7
7
ImportSettings ,
8
+ LegacyResolver ,
8
9
NewResolver ,
9
10
PluginSettings ,
10
11
RuleContext ,
@@ -74,7 +75,8 @@ function isNamedResolver(resolver: unknown): resolver is { name: string } {
74
75
typeof resolver === 'object' &&
75
76
resolver &&
76
77
'name' in resolver &&
77
- typeof resolver . name === 'string'
78
+ typeof resolver . name === 'string' &&
79
+ resolver . name
78
80
)
79
81
}
80
82
@@ -233,3 +235,26 @@ export function resolve(p: string, context: RuleContext) {
233
235
}
234
236
}
235
237
}
238
+
239
+ export function importXResolverCompat ( resolver : LegacyResolver | NewResolver , resolverOptions : unknown = { } ) : NewResolver {
240
+ // Somehow the resolver is already using v3 interface
241
+ if ( isValidNewResolver ( resolver ) ) {
242
+ return resolver
243
+ }
244
+
245
+ return {
246
+ // deliberately not providing the name, because we can't get the name from legacy resolvers
247
+ // By omitting the name, the log will use identifiable name like `settings['import-x/resolver-next'][0]`
248
+ // name: 'import-x-resolver-compat',
249
+ interfaceVersion : 3 ,
250
+ resolve : ( modulePath , sourceFile ) => {
251
+ const resolved = resolveWithLegacyResolver (
252
+ resolver ,
253
+ resolverOptions ,
254
+ modulePath ,
255
+ sourceFile ,
256
+ )
257
+ return resolved
258
+ } ,
259
+ }
260
+ }
You can’t perform that action at this time.
0 commit comments