Skip to content

Commit d315496

Browse files
committed
chore: migrate to ESLint and upgrade tools
1 parent a75f989 commit d315496

13 files changed

+1347
-437
lines changed

.eslintrc.json

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"extends": "@sourcegraph/eslint-config",
3+
"parserOptions": {
4+
"project": "tsconfig.json"
5+
}
6+
}

.prettierignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
.nyc_output/
12
package.json
23
package-lock.json
34
dist/

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
- stage: test
1212
script:
1313
- yarn run prettier-check
14-
- yarn run tslint
14+
- yarn run eslint
1515
- yarn run build
1616
- yarn test
1717
- nyc report --reporter json

.vscode/settings.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"typescript.tsdk": "node_modules/typescript/lib"
3+
}

.vscode/tasks.json

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"type": "npm",
6+
"script": "eslint",
7+
"problemMatcher": ["$eslint-stylish"],
8+
"label": "npm: eslint",
9+
"detail": "eslint './src/*.ts?(x)'"
10+
},
11+
{
12+
"type": "npm",
13+
"script": "watch",
14+
"problemMatcher": ["$tsc-watch"],
15+
"group": "build",
16+
"label": "npm: watch",
17+
"detail": "tsc -p . -w",
18+
"isBackground": true,
19+
"runOptions": {
20+
"runOn": "folderOpen"
21+
}
22+
}
23+
]
24+
}

package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"semantic-release": "semantic-release",
1818
"prettier": "prettier '**/{*.{js?(on),ts?(x),scss},.*.js?(on)}' --write --list-different",
1919
"prettier-check": "npm run prettier -- --write=false",
20-
"tslint": "tslint -c tslint.json -p tsconfig.json './src/*.ts?(x)' './*.ts?(x)'",
20+
"eslint": "eslint './src/*.ts?(x)'",
2121
"build": "tsc -p .",
2222
"watch": "tsc -p . -w"
2323
},
@@ -49,19 +49,19 @@
4949
"devDependencies": {
5050
"@commitlint/cli": "^9.0.1",
5151
"@commitlint/config-conventional": "^9.0.1",
52+
"@sourcegraph/eslint-config": "^0.19.15",
5253
"@sourcegraph/prettierrc": "^2.2.0",
5354
"@sourcegraph/tsconfig": "^4.0.1",
54-
"@sourcegraph/tslint-config": "^13.4.0",
5555
"@types/mocha": "7.0.2",
56+
"eslint": "^7.4.0",
5657
"husky": "^2.1.0",
5758
"mocha": "^6.1.4",
5859
"nyc": "^14.1.0",
59-
"prettier": "^1.19.1",
60+
"prettier": "^2.0.5",
6061
"semantic-release": "^15.13.3",
6162
"sourcegraph": "^24.6.0",
6263
"ts-node": "^8.1.0",
63-
"tslint": "^6.1.2",
64-
"typescript": "^3.4.5"
64+
"typescript": "^3.9.6"
6565
},
6666
"husky": {
6767
"hooks": {

src/enums.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
/* istanbul ignore file */
2-
// tslint:disable: no-object-literal-type-assertion https://github.com/palantir/tslint/issues/4628
32

43
import * as sourcegraph from 'sourcegraph'
54

src/location.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Range } from './range'
44
import { isURL } from './url'
55

66
export class Location implements sourcegraph.Location {
7-
public static isLocation(thing: any): thing is sourcegraph.Location {
7+
public static isLocation(thing: unknown): thing is sourcegraph.Location {
88
if (thing instanceof Location) {
99
return true
1010
}
@@ -24,7 +24,7 @@ export class Location implements sourcegraph.Location {
2424
} else if (rangeOrPosition instanceof Position) {
2525
this.range = new Range(rangeOrPosition, rangeOrPosition)
2626
} else {
27-
throw new Error('Illegal argument')
27+
throw new TypeError('Illegal argument')
2828
}
2929
}
3030

src/position.test.ts

+88-88
Original file line numberDiff line numberDiff line change
@@ -7,114 +7,114 @@ suite('Position', () => {
77
assert.throws(() => new Position(-1, 0))
88
assert.throws(() => new Position(0, -1))
99

10-
const pos = new Position(0, 0)
11-
assert.throws(() => ((pos as any).line = -1))
12-
assert.throws(() => ((pos as any).character = -1))
13-
assert.throws(() => ((pos as any).line = 12))
10+
const position = new Position(0, 0)
11+
assert.throws(() => ((position as any).line = -1))
12+
assert.throws(() => ((position as any).character = -1))
13+
assert.throws(() => ((position as any).line = 12))
1414

15-
const { line, character } = pos.toJSON()
15+
const { line, character } = position.toJSON()
1616
assert.strictEqual(line, 0)
1717
assert.strictEqual(character, 0)
1818
})
1919

2020
test('toJSON', () => {
21-
const pos = new Position(4, 2)
22-
assertToJSON(pos, { line: 4, character: 2 })
21+
const position = new Position(4, 2)
22+
assertToJSON(position, { line: 4, character: 2 })
2323
})
2424

2525
test('isBefore(OrEqual)?', () => {
26-
const p1 = new Position(1, 3)
27-
const p2 = new Position(1, 2)
28-
const p3 = new Position(0, 4)
29-
30-
assert(p1.isBeforeOrEqual(p1))
31-
assert(!p1.isBefore(p1))
32-
assert(p2.isBefore(p1))
33-
assert(p3.isBefore(p2))
26+
const position1 = new Position(1, 3)
27+
const position2 = new Position(1, 2)
28+
const position3 = new Position(0, 4)
29+
30+
assert(position1.isBeforeOrEqual(position1))
31+
assert(!position1.isBefore(position1))
32+
assert(position2.isBefore(position1))
33+
assert(position3.isBefore(position2))
3434
})
3535

3636
test('isAfter(OrEqual)?', () => {
37-
const p1 = new Position(1, 3)
38-
const p2 = new Position(1, 2)
39-
const p3 = new Position(0, 4)
40-
41-
assert(p1.isAfterOrEqual(p1))
42-
assert(!p1.isAfter(p1))
43-
assert(p1.isAfter(p2))
44-
assert(p2.isAfter(p3))
45-
assert(p1.isAfter(p3))
37+
const position1 = new Position(1, 3)
38+
const position2 = new Position(1, 2)
39+
const position3 = new Position(0, 4)
40+
41+
assert(position1.isAfterOrEqual(position1))
42+
assert(!position1.isAfter(position1))
43+
assert(position1.isAfter(position2))
44+
assert(position2.isAfter(position3))
45+
assert(position1.isAfter(position3))
4646
})
4747

4848
test('compareTo', () => {
49-
const p1 = new Position(1, 3)
50-
const p2 = new Position(1, 2)
51-
const p3 = new Position(0, 4)
52-
53-
assert.strictEqual(p1.compareTo(p1), 0)
54-
assert.strictEqual(p2.compareTo(p1), -1)
55-
assert.strictEqual(p1.compareTo(p2), 1)
56-
assert.strictEqual(p2.compareTo(p3), 1)
57-
assert.strictEqual(p1.compareTo(p3), 1)
49+
const position1 = new Position(1, 3)
50+
const position2 = new Position(1, 2)
51+
const position3 = new Position(0, 4)
52+
53+
assert.strictEqual(position1.compareTo(position1), 0)
54+
assert.strictEqual(position2.compareTo(position1), -1)
55+
assert.strictEqual(position1.compareTo(position2), 1)
56+
assert.strictEqual(position2.compareTo(position3), 1)
57+
assert.strictEqual(position1.compareTo(position3), 1)
5858
})
5959

6060
test('translate', () => {
61-
const p1 = new Position(1, 3)
62-
63-
assert(p1.translate() === p1)
64-
assert(p1.translate({}) === p1)
65-
assert(p1.translate(0, 0) === p1)
66-
assert(p1.translate(0) === p1)
67-
assert(p1.translate(undefined, 0) === p1)
68-
assert(p1.translate(undefined) === p1)
69-
70-
let res = p1.translate(-1)
71-
assert.strictEqual(res.line, 0)
72-
assert.strictEqual(res.character, 3)
73-
74-
res = p1.translate({ lineDelta: -1 })
75-
assert.strictEqual(res.line, 0)
76-
assert.strictEqual(res.character, 3)
77-
78-
res = p1.translate(undefined, -1)
79-
assert.strictEqual(res.line, 1)
80-
assert.strictEqual(res.character, 2)
81-
82-
res = p1.translate({ characterDelta: -1 })
83-
assert.strictEqual(res.line, 1)
84-
assert.strictEqual(res.character, 2)
85-
86-
res = p1.translate(11)
87-
assert.strictEqual(res.line, 12)
88-
assert.strictEqual(res.character, 3)
89-
90-
assert.throws(() => p1.translate(null as any))
91-
assert.throws(() => p1.translate(null as any, null as any))
92-
assert.throws(() => p1.translate(-2))
93-
assert.throws(() => p1.translate({ lineDelta: -2 }))
94-
assert.throws(() => p1.translate(-2, null as any))
95-
assert.throws(() => p1.translate(0, -4))
61+
const position1 = new Position(1, 3)
62+
63+
assert(position1.translate() === position1)
64+
assert(position1.translate({}) === position1)
65+
assert(position1.translate(0, 0) === position1)
66+
assert(position1.translate(0) === position1)
67+
assert(position1.translate(undefined, 0) === position1)
68+
assert(position1.translate(undefined) === position1)
69+
70+
let translated = position1.translate(-1)
71+
assert.strictEqual(translated.line, 0)
72+
assert.strictEqual(translated.character, 3)
73+
74+
translated = position1.translate({ lineDelta: -1 })
75+
assert.strictEqual(translated.line, 0)
76+
assert.strictEqual(translated.character, 3)
77+
78+
translated = position1.translate(undefined, -1)
79+
assert.strictEqual(translated.line, 1)
80+
assert.strictEqual(translated.character, 2)
81+
82+
translated = position1.translate({ characterDelta: -1 })
83+
assert.strictEqual(translated.line, 1)
84+
assert.strictEqual(translated.character, 2)
85+
86+
translated = position1.translate(11)
87+
assert.strictEqual(translated.line, 12)
88+
assert.strictEqual(translated.character, 3)
89+
90+
assert.throws(() => position1.translate(null as any))
91+
assert.throws(() => position1.translate(null as any, null as any))
92+
assert.throws(() => position1.translate(-2))
93+
assert.throws(() => position1.translate({ lineDelta: -2 }))
94+
assert.throws(() => position1.translate(-2, null as any))
95+
assert.throws(() => position1.translate(0, -4))
9696
})
9797

9898
test('with', () => {
99-
const p1 = new Position(1, 3)
100-
101-
assert(p1.with() === p1)
102-
assert(p1.with(1) === p1)
103-
assert(p1.with(undefined, 3) === p1)
104-
assert(p1.with(1, 3) === p1)
105-
assert(p1.with(undefined) === p1)
106-
assert(p1.with({ line: 1 }) === p1)
107-
assert(p1.with({ character: 3 }) === p1)
108-
assert(p1.with({ line: 1, character: 3 }) === p1)
109-
110-
const p2 = p1.with({ line: 0, character: 11 })
111-
assert.strictEqual(p2.line, 0)
112-
assert.strictEqual(p2.character, 11)
113-
114-
assert.throws(() => p1.with(null as any))
115-
assert.throws(() => p1.with(-9))
116-
assert.throws(() => p1.with(0, -9))
117-
assert.throws(() => p1.with({ line: -1 }))
118-
assert.throws(() => p1.with({ character: -1 }))
99+
const position1 = new Position(1, 3)
100+
101+
assert(position1.with() === position1)
102+
assert(position1.with(1) === position1)
103+
assert(position1.with(undefined, 3) === position1)
104+
assert(position1.with(1, 3) === position1)
105+
assert(position1.with(undefined) === position1)
106+
assert(position1.with({ line: 1 }) === position1)
107+
assert(position1.with({ character: 3 }) === position1)
108+
assert(position1.with({ line: 1, character: 3 }) === position1)
109+
110+
const position2 = position1.with({ line: 0, character: 11 })
111+
assert.strictEqual(position2.line, 0)
112+
assert.strictEqual(position2.character, 11)
113+
114+
assert.throws(() => position1.with(null as any))
115+
assert.throws(() => position1.with(-9))
116+
assert.throws(() => position1.with(0, -9))
117+
assert.throws(() => position1.with({ line: -1 }))
118+
assert.throws(() => position1.with({ character: -1 }))
119119
})
120120
})

src/position.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ export class Position implements sourcegraph.Position {
99
if (result === undefined) {
1010
return undefined
1111
}
12-
for (const p of positions) {
13-
if (p.isBefore(result)) {
14-
result = p
12+
for (const position of positions) {
13+
if (position.isBefore(result)) {
14+
result = position
1515
}
1616
}
1717
return result
@@ -24,9 +24,9 @@ export class Position implements sourcegraph.Position {
2424
if (result === undefined) {
2525
return undefined
2626
}
27-
for (const p of positions) {
28-
if (p.isAfter(result)) {
29-
result = p
27+
for (const position of positions) {
28+
if (position.isAfter(result)) {
29+
result = position
3030
}
3131
}
3232
return result

0 commit comments

Comments
 (0)