Skip to content

Commit 2e963a9

Browse files
committed
Add support for "import equals"-expressions
1 parent 376e800 commit 2e963a9

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

src/rules/order.js

+25-3
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,12 @@ function isPlainImportModule(node) {
157157
return node.type === 'ImportDeclaration' && node.specifiers != null && node.specifiers.length > 0
158158
}
159159

160+
function isPlainImportEquals(node) {
161+
return node.type === 'TSImportEqualsDeclaration' && node.moduleReference.expression
162+
}
163+
160164
function canCrossNodeWhileReorder(node) {
161-
return isPlainRequireModule(node) || isPlainImportModule(node)
165+
return isPlainRequireModule(node) || isPlainImportModule(node) || isPlainImportEquals(node)
162166
}
163167

164168
function canReorderItems(firstNode, secondNode) {
@@ -247,10 +251,10 @@ function getSorter(ascending) {
247251
return function importsSorter(importA, importB) {
248252
let result
249253

250-
if (importA < importB) {
254+
if ((importA < importB) || importB === null) {
251255
result = -1
252256
}
253-
else if (importA > importB) {
257+
else if ((importA > importB) || importA === null) {
254258
result = 1
255259
}
256260
else {
@@ -603,6 +607,24 @@ module.exports = {
603607
)
604608
}
605609
},
610+
TSImportEqualsDeclaration: function handleImports(node) {
611+
let name
612+
if (node.moduleReference.type === 'TSExternalModuleReference') {
613+
name = node.moduleReference.expression.value
614+
}
615+
else {
616+
name = null
617+
}
618+
registerNode(
619+
context,
620+
node,
621+
name,
622+
'import',
623+
ranks,
624+
imported,
625+
pathGroupsExcludedImportTypes
626+
)
627+
},
606628
CallExpression: function handleRequires(node) {
607629
if (level !== 0 || !isStaticRequire(node) || !isInVariableDeclarator(node.parent)) {
608630
return

0 commit comments

Comments
 (0)