|
1 | 1 | var babylonToEspree = require("./babylon-to-espree"); |
2 | | -var pick = require("lodash.pickby"); |
3 | | -var Module = require("module"); |
4 | | -var path = require("path"); |
5 | | -var parse = require("babylon").parse; |
6 | | -var t = require("babel-types"); |
7 | | -var tt = require("babylon").tokTypes; |
8 | | -var traverse = require("babel-traverse").default; |
9 | | - |
10 | | -var estraverse; |
| 2 | +var pick = require("lodash.pickby"); |
| 3 | +var Module = require("module"); |
| 4 | +var path = require("path"); |
| 5 | +var parse = require("babylon").parse; |
| 6 | +var t = require("babel-types"); |
| 7 | +var tt = require("babylon").tokTypes; |
| 8 | +var traverse = require("babel-traverse").default; |
| 9 | + |
11 | 10 | var hasPatched = false; |
12 | 11 | var eslintOptions = {}; |
13 | 12 |
|
@@ -37,46 +36,21 @@ function monkeypatch() { |
37 | 36 |
|
38 | 37 | // get modules relative to what eslint will load |
39 | 38 | var eslintMod = createModule(eslintLoc); |
40 | | - var escopeLoc = Module._resolveFilename("escope", eslintMod); |
41 | | - var escopeMod = createModule(escopeLoc); |
42 | | - |
43 | | - // npm 3: monkeypatch estraverse if it's in escope |
44 | | - var estraverseRelative = escopeMod; |
45 | | - try { |
46 | | - var esrecurseLoc = Module._resolveFilename("esrecurse", eslintMod); |
47 | | - estraverseRelative = createModule(esrecurseLoc); |
48 | | - } catch (err) {} |
49 | | - |
50 | 39 | // contains all the instances of estraverse so we can modify them if necessary |
51 | 40 | var estraverses = []; |
52 | | - |
53 | | - // monkeypatch estraverse |
54 | | - estraverse = estraverseRelative.require("estraverse"); |
55 | | - estraverses.push(estraverse); |
56 | | - Object.assign(estraverse.VisitorKeys, t.VISITOR_KEYS); |
57 | | - |
58 | | - // monkeypatch estraverse-fb (only for eslint < 2.3.0) |
59 | | - try { |
60 | | - var estraverseFb = eslintMod.require("estraverse-fb"); |
61 | | - estraverses.push(estraverseFb); |
62 | | - Object.assign(estraverseFb.VisitorKeys, t.VISITOR_KEYS); |
63 | | - } catch (err) { |
64 | | - // Ignore: ESLint v2.3.0 does not have estraverse-fb |
65 | | - } |
66 | | - |
67 | 41 | // ESLint v1.9.0 uses estraverse directly to work around https://github.com/npm/npm/issues/9663 |
68 | 42 | var estraverseOfEslint = eslintMod.require("estraverse"); |
69 | | - if (estraverseOfEslint !== estraverseFb) { |
70 | | - estraverses.push(estraverseOfEslint); |
71 | | - Object.assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS); |
72 | | - } |
| 43 | + estraverses.push(estraverseOfEslint); |
| 44 | + Object.assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS); |
73 | 45 |
|
74 | 46 | estraverses.forEach(function (estraverse) { |
75 | 47 | estraverse.VisitorKeys.MethodDefinition.push("decorators"); |
76 | 48 | estraverse.VisitorKeys.Property.push("decorators"); |
77 | 49 | }); |
78 | 50 |
|
79 | 51 | // monkeypatch escope |
| 52 | + var escopeLoc = Module._resolveFilename("escope", eslintMod); |
| 53 | + var escopeMod = createModule(escopeLoc); |
80 | 54 | var escope = require(escopeLoc); |
81 | 55 | var analyze = escope.analyze; |
82 | 56 | escope.analyze = function (ast, opts) { |
|
0 commit comments