Skip to content

Commit de0cbb3

Browse files
committed
fix: correctly identify node builtin modules with subpaths
1 parent 1a02538 commit de0cbb3

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

rules/sort-imports/compute-common-selectors.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,27 @@ let bunModules = new Set([
102102
let nodeBuiltinModules = new Set(builtinModules)
103103
let builtinPrefixOnlyModules = new Set(['node:sqlite', 'node:test', 'node:sea'])
104104
let isCoreModule = (value: string, environment: 'node' | 'bun'): boolean => {
105-
let valueToCheck = value.startsWith('node:') ? value.split('node:')[1] : value
106-
return (
107-
(!!valueToCheck && nodeBuiltinModules.has(valueToCheck)) ||
105+
let clean = (string_: string): string =>
106+
string_.replace(/^(?:node:){1,2}/u, '')
107+
let [basePath] = value.split('/')
108+
109+
let cleanValue = clean(value)
110+
let cleanBase = clean(basePath!)
111+
112+
if (nodeBuiltinModules.has(cleanValue) || nodeBuiltinModules.has(cleanBase)) {
113+
return true
114+
}
115+
116+
if (
108117
builtinPrefixOnlyModules.has(value) ||
109-
(environment === 'bun' ? bunModules.has(value) : false)
110-
)
118+
builtinPrefixOnlyModules.has(`node:${cleanValue}`) ||
119+
builtinPrefixOnlyModules.has(basePath!) ||
120+
builtinPrefixOnlyModules.has(`node:${cleanBase}`)
121+
) {
122+
return true
123+
}
124+
125+
return environment === 'bun' && bunModules.has(value)
111126
}
112127

113128
let isParent = (value: string): boolean => value.startsWith('..')

0 commit comments

Comments
 (0)