Skip to content

Commit e5ee158

Browse files
authored
Merge pull request #1137 from justinanastos/fix/typescript-import-order-1086
Fix import/order autofixer when using typescript-eslint-parser
2 parents a162af4 + 8d02f32 commit e5ee158

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

src/rules/order.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ function findRootNode(node) {
9797
function findEndOfLineWithComments(sourceCode, node) {
9898
const tokensToEndOfLine = takeTokensAfterWhile(sourceCode, node, commentOnSameLineAs(node))
9999
let endOfTokens = tokensToEndOfLine.length > 0
100-
? tokensToEndOfLine[tokensToEndOfLine.length - 1].end
101-
: node.end
100+
? tokensToEndOfLine[tokensToEndOfLine.length - 1].range[1]
101+
: node.range[1]
102102
let result = endOfTokens
103103
for (let i = endOfTokens; i < sourceCode.text.length; i++) {
104104
if (sourceCode.text[i] === '\n') {
@@ -121,7 +121,7 @@ function commentOnSameLineAs(node) {
121121

122122
function findStartOfLineWithComments(sourceCode, node) {
123123
const tokensToEndOfLine = takeTokensBeforeWhile(sourceCode, node, commentOnSameLineAs(node))
124-
let startOfTokens = tokensToEndOfLine.length > 0 ? tokensToEndOfLine[0].start : node.start
124+
let startOfTokens = tokensToEndOfLine.length > 0 ? tokensToEndOfLine[0].range[0] : node.range[0]
125125
let result = startOfTokens
126126
for (let i = startOfTokens - 1; i > 0; i--) {
127127
if (sourceCode.text[i] !== ' ' && sourceCode.text[i] !== '\t') {
@@ -296,11 +296,11 @@ function fixNewLineAfterImport(context, previousImport) {
296296
const tokensToEndOfLine = takeTokensAfterWhile(
297297
context.getSourceCode(), prevRoot, commentOnSameLineAs(prevRoot))
298298

299-
let endOfLine = prevRoot.end
299+
let endOfLine = prevRoot.range[1]
300300
if (tokensToEndOfLine.length > 0) {
301-
endOfLine = tokensToEndOfLine[tokensToEndOfLine.length - 1].end
301+
endOfLine = tokensToEndOfLine[tokensToEndOfLine.length - 1].range[1]
302302
}
303-
return (fixer) => fixer.insertTextAfterRange([prevRoot.start, endOfLine], '\n')
303+
return (fixer) => fixer.insertTextAfterRange([prevRoot.range[0], endOfLine], '\n')
304304
}
305305

306306
function removeNewLineAfterImport(context, currentImport, previousImport) {

tests/src/rules/order.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,5 +1260,21 @@ ruleTester.run('order', rule, {
12601260
message: '`fs` import should occur before import of `async`',
12611261
}],
12621262
})),
1263+
// fix incorrect order with typescript-eslint-parser
1264+
test({
1265+
code: `
1266+
var async = require('async');
1267+
var fs = require('fs');
1268+
`,
1269+
output: `
1270+
var fs = require('fs');
1271+
var async = require('async');
1272+
`,
1273+
parser: 'typescript-eslint-parser',
1274+
errors: [{
1275+
ruleId: 'order',
1276+
message: '`fs` import should occur before import of `async`',
1277+
}],
1278+
}),
12631279
],
12641280
})

0 commit comments

Comments
 (0)