hermes-transform 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/detachedNode.js +25 -49
- package/dist/detachedNode.js.flow +3 -3
- package/dist/generated/TransformCloneSignatures.js.flow +1761 -9
- package/dist/generated/TransformReplaceSignatures.js.flow +936 -774
- package/dist/generated/node-types.js +1117 -1132
- package/dist/generated/node-types.js.flow +26 -1
- package/dist/generated/special-case-node-types.js +106 -85
- package/dist/generated/special-case-node-types.js.flow +28 -2
- package/dist/getVisitorKeys.js +4 -6
- package/dist/getVisitorKeys.js.flow +1 -1
- package/dist/index.js +13 -18
- package/dist/index.js.flow +7 -2
- package/dist/transform/Errors.js +8 -116
- package/dist/transform/Errors.js.flow +1 -1
- package/dist/transform/MutationContext.js +54 -67
- package/dist/transform/MutationContext.js.flow +1 -1
- package/dist/transform/TransformContext.js +106 -54
- package/dist/transform/TransformContext.js.flow +255 -121
- package/dist/transform/comments/comments.js +25 -25
- package/dist/transform/comments/comments.js.flow +1 -1
- package/dist/transform/comments/prettier/common/util.js +46 -47
- package/dist/transform/comments/prettier/common/util.js.flow +1 -1
- package/dist/transform/comments/prettier/language-js/comments.js +199 -216
- package/dist/transform/comments/prettier/language-js/comments.js.flow +1 -1
- package/dist/transform/comments/prettier/language-js/loc.js +10 -9
- package/dist/transform/comments/prettier/language-js/loc.js.flow +1 -1
- package/dist/transform/comments/prettier/language-js/printer-estree.js +7 -6
- package/dist/transform/comments/prettier/language-js/printer-estree.js.flow +1 -1
- package/dist/transform/comments/prettier/language-js/utils.js +18 -30
- package/dist/transform/comments/prettier/language-js/utils.js.flow +1 -1
- package/dist/transform/comments/prettier/main/comments.js +225 -298
- package/dist/transform/comments/prettier/main/comments.js.flow +1 -1
- package/dist/transform/comments/prettier/utils/get-last.js +2 -4
- package/dist/transform/comments/prettier/utils/get-last.js.flow +1 -1
- package/dist/transform/getTransformedAST.js +85 -101
- package/dist/transform/getTransformedAST.js.flow +7 -2
- package/dist/transform/mutations/AddLeadingComments.js +15 -22
- package/dist/transform/mutations/AddLeadingComments.js.flow +1 -1
- package/dist/transform/mutations/AddTrailingComments.js +15 -22
- package/dist/transform/mutations/AddTrailingComments.js.flow +1 -1
- package/dist/transform/mutations/CloneCommentsTo.js +16 -23
- package/dist/transform/mutations/CloneCommentsTo.js.flow +1 -1
- package/dist/transform/mutations/InsertStatement.js +27 -30
- package/dist/transform/mutations/InsertStatement.js.flow +1 -1
- package/dist/transform/mutations/RemoveComment.js +25 -43
- package/dist/transform/mutations/RemoveComment.js.flow +1 -1
- package/dist/transform/mutations/RemoveNode.js +185 -0
- package/dist/transform/mutations/RemoveNode.js.flow +279 -0
- package/dist/transform/mutations/RemoveStatement.js +7 -9
- package/dist/transform/mutations/RemoveStatement.js.flow +1 -1
- package/dist/transform/mutations/ReplaceNode.js +36 -44
- package/dist/transform/mutations/ReplaceNode.js.flow +1 -1
- package/dist/transform/mutations/ReplaceStatementWithMany.js +11 -13
- package/dist/transform/mutations/ReplaceStatementWithMany.js.flow +1 -1
- package/dist/transform/mutations/utils/arrayUtils.js +2 -14
- package/dist/transform/mutations/utils/arrayUtils.js.flow +1 -1
- package/dist/transform/mutations/utils/getStatementParent.js +23 -28
- package/dist/transform/mutations/utils/getStatementParent.js.flow +2 -2
- package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js +7 -24
- package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js.flow +1 -1
- package/dist/transform/transform.js +20 -24
- package/dist/transform/transform.js.flow +12 -8
- package/dist/traverse/NodeEventGenerator.js +91 -165
- package/dist/traverse/NodeEventGenerator.js.flow +1 -1
- package/dist/traverse/SafeEmitter.js +20 -38
- package/dist/traverse/SafeEmitter.js.flow +1 -1
- package/dist/traverse/SimpleTraverser.js +67 -98
- package/dist/traverse/SimpleTraverser.js.flow +4 -1
- package/dist/traverse/esquery.js +6 -6
- package/dist/traverse/esquery.js.flow +1 -1
- package/dist/traverse/traverse.js +39 -51
- package/dist/traverse/traverse.js.flow +1 -1
- package/package.json +4 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -16,134 +16,103 @@ exports.SimpleTraverserSkip = exports.SimpleTraverserBreak = exports.SimpleTrave
|
|
|
16
16
|
|
|
17
17
|
var _getVisitorKeys = require("../getVisitorKeys");
|
|
18
18
|
|
|
19
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
20
|
-
|
|
21
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
22
|
-
|
|
23
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
24
|
-
|
|
25
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
26
|
-
|
|
27
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
28
|
-
|
|
29
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
30
|
-
|
|
31
19
|
/**
|
|
32
20
|
* Can be thrown within the traversal "enter" function to prevent the traverser
|
|
33
21
|
* from traversing the node any further, essentially culling the remainder of the
|
|
34
22
|
* AST branch
|
|
35
23
|
*/
|
|
36
|
-
|
|
24
|
+
const SimpleTraverserSkip = new Error();
|
|
37
25
|
/**
|
|
38
26
|
* Can be thrown at any point during the traversal to immediately stop traversal
|
|
39
27
|
* entirely.
|
|
40
28
|
*/
|
|
41
29
|
|
|
42
30
|
exports.SimpleTraverserSkip = SimpleTraverserSkip;
|
|
43
|
-
|
|
31
|
+
const SimpleTraverserBreak = new Error();
|
|
44
32
|
/**
|
|
45
33
|
* A very simple traverser class to traverse AST trees.
|
|
46
34
|
*/
|
|
47
35
|
|
|
48
36
|
exports.SimpleTraverserBreak = SimpleTraverserBreak;
|
|
49
37
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
38
|
+
class SimpleTraverser {
|
|
39
|
+
/**
|
|
40
|
+
* Traverse the given AST tree.
|
|
41
|
+
* @param node The root node to traverse.
|
|
42
|
+
* @param options The option object.
|
|
43
|
+
*/
|
|
44
|
+
traverse(node, options) {
|
|
45
|
+
try {
|
|
46
|
+
this._traverse(node, null, options);
|
|
47
|
+
} catch (ex) {
|
|
48
|
+
if (ex === SimpleTraverserBreak) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
throw ex;
|
|
53
|
+
}
|
|
53
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Traverse the given AST tree recursively.
|
|
57
|
+
* @param node The current node.
|
|
58
|
+
* @param parent The parent node.
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
54
61
|
|
|
55
|
-
_createClass(SimpleTraverser, [{
|
|
56
|
-
key: "traverse",
|
|
57
|
-
value:
|
|
58
|
-
/**
|
|
59
|
-
* Traverse the given AST tree.
|
|
60
|
-
* @param node The root node to traverse.
|
|
61
|
-
* @param options The option object.
|
|
62
|
-
*/
|
|
63
|
-
function traverse(node, options) {
|
|
64
|
-
try {
|
|
65
|
-
this._traverse(node, null, options);
|
|
66
|
-
} catch (ex) {
|
|
67
|
-
if (ex === SimpleTraverserBreak) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
62
|
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
_traverse(node, parent, options) {
|
|
64
|
+
if (!(0, _getVisitorKeys.isNode)(node)) {
|
|
65
|
+
return;
|
|
73
66
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Traverse the given AST tree recursively.
|
|
76
|
-
* @param node The current node.
|
|
77
|
-
* @param parent The parent node.
|
|
78
|
-
* @private
|
|
79
|
-
*/
|
|
80
|
-
|
|
81
|
-
}, {
|
|
82
|
-
key: "_traverse",
|
|
83
|
-
value: function _traverse(node, parent, options) {
|
|
84
|
-
if (!(0, _getVisitorKeys.isNode)(node)) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
67
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
throw ex;
|
|
68
|
+
try {
|
|
69
|
+
options.enter(node, parent);
|
|
70
|
+
} catch (ex) {
|
|
71
|
+
if (ex === SimpleTraverserSkip) {
|
|
72
|
+
return;
|
|
96
73
|
}
|
|
97
74
|
|
|
98
|
-
|
|
75
|
+
throw ex;
|
|
76
|
+
}
|
|
99
77
|
|
|
100
|
-
|
|
101
|
-
_step;
|
|
78
|
+
const keys = (0, _getVisitorKeys.getVisitorKeys)(node);
|
|
102
79
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
// $FlowExpectedError[prop-missing]
|
|
107
|
-
var child = node[key];
|
|
80
|
+
for (const key of keys) {
|
|
81
|
+
// $FlowExpectedError[prop-missing]
|
|
82
|
+
const child = node[key];
|
|
108
83
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
} else {
|
|
114
|
-
this._traverse(child, node, options);
|
|
115
|
-
}
|
|
84
|
+
if (Array.isArray(child)) {
|
|
85
|
+
for (let j = 0; j < child.length; ++j) {
|
|
86
|
+
this._traverse(child[j], node, options);
|
|
116
87
|
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
} finally {
|
|
120
|
-
_iterator.f();
|
|
88
|
+
} else {
|
|
89
|
+
this._traverse(child, node, options);
|
|
121
90
|
}
|
|
91
|
+
}
|
|
122
92
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
throw ex;
|
|
93
|
+
try {
|
|
94
|
+
options.leave(node, parent);
|
|
95
|
+
} catch (ex) {
|
|
96
|
+
if (ex === SimpleTraverserSkip) {
|
|
97
|
+
return;
|
|
131
98
|
}
|
|
99
|
+
|
|
100
|
+
throw ex;
|
|
132
101
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}]);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Traverse the given AST tree.
|
|
105
|
+
* @param node The root node to traverse.
|
|
106
|
+
* @param options The option object.
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
static traverse(node, options) {
|
|
111
|
+
new SimpleTraverser().traverse(node, options);
|
|
112
|
+
}
|
|
145
113
|
|
|
146
|
-
|
|
147
|
-
}();
|
|
114
|
+
}
|
|
148
115
|
|
|
149
|
-
exports.SimpleTraverser = SimpleTraverser;
|
|
116
|
+
exports.SimpleTraverser = SimpleTraverser;
|
|
117
|
+
SimpleTraverser.Break = SimpleTraverserBreak;
|
|
118
|
+
SimpleTraverser.Skip = SimpleTraverserSkip;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -38,6 +38,9 @@ export const SimpleTraverserBreak: Error = new Error();
|
|
|
38
38
|
* A very simple traverser class to traverse AST trees.
|
|
39
39
|
*/
|
|
40
40
|
export class SimpleTraverser {
|
|
41
|
+
static Break: Error = SimpleTraverserBreak;
|
|
42
|
+
static Skip: Error = SimpleTraverserSkip;
|
|
43
|
+
|
|
41
44
|
/**
|
|
42
45
|
* Traverse the given AST tree.
|
|
43
46
|
* @param node The root node to traverse.
|
package/dist/traverse/esquery.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -16,22 +16,22 @@ exports.query = exports.parse = exports.matches = exports.match = void 0;
|
|
|
16
16
|
|
|
17
17
|
var _esquery = _interopRequireDefault(require("esquery"));
|
|
18
18
|
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : {
|
|
19
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
20
|
|
|
21
21
|
// $FlowExpectedError[cannot-resolve-module]
|
|
22
22
|
|
|
23
23
|
/** Parse a selector and return its AST. */
|
|
24
|
-
|
|
24
|
+
const parse = _esquery.default.parse;
|
|
25
25
|
/** From a JS AST and a selector AST, collect all JS AST nodes that match the selector. */
|
|
26
26
|
|
|
27
27
|
exports.parse = parse;
|
|
28
|
-
|
|
28
|
+
const match = _esquery.default.match;
|
|
29
29
|
/** Given a `node` and its ancestors, determine if `node` is matched by `selector`. */
|
|
30
30
|
|
|
31
31
|
exports.match = match;
|
|
32
|
-
|
|
32
|
+
const matches = _esquery.default.matches;
|
|
33
33
|
/** Query the code AST using the selector string. */
|
|
34
34
|
|
|
35
35
|
exports.matches = matches;
|
|
36
|
-
|
|
36
|
+
const query = _esquery.default.query;
|
|
37
37
|
exports.query = query;
|
|
@@ -12,17 +12,15 @@ var _SafeEmitter = require("./SafeEmitter");
|
|
|
12
12
|
|
|
13
13
|
var _SimpleTraverser = require("./SimpleTraverser");
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
15
|
+
/**
|
|
16
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
17
|
+
*
|
|
18
|
+
* This source code is licensed under the MIT license found in the
|
|
19
|
+
* LICENSE file in the root directory of this source tree.
|
|
20
|
+
*
|
|
21
|
+
*
|
|
22
|
+
* @format
|
|
23
|
+
*/
|
|
26
24
|
|
|
27
25
|
/**
|
|
28
26
|
* Traverse the AST with additional context members provided by `additionalContext`.
|
|
@@ -31,34 +29,35 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
31
29
|
* @param additionalContext a callback function which returns additional context members to add to the context provided to the visitor
|
|
32
30
|
*/
|
|
33
31
|
function traverseWithContext(ast, scopeManager, additionalContext, visitor) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
const emitter = new _SafeEmitter.SafeEmitter();
|
|
33
|
+
const nodeQueue = [];
|
|
34
|
+
let currentNode = ast; // set parent pointers and build up the traversal queue
|
|
37
35
|
|
|
38
36
|
_SimpleTraverser.SimpleTraverser.traverse(ast, {
|
|
39
|
-
enter
|
|
37
|
+
enter(node, parent) {
|
|
40
38
|
// $FlowExpectedError[cannot-write] - hermes doesn't set this
|
|
41
39
|
node.parent = parent;
|
|
42
40
|
nodeQueue.push({
|
|
43
41
|
isEntering: true,
|
|
44
|
-
node
|
|
42
|
+
node
|
|
45
43
|
});
|
|
46
44
|
},
|
|
47
|
-
|
|
45
|
+
|
|
46
|
+
leave(node) {
|
|
48
47
|
nodeQueue.push({
|
|
49
48
|
isEntering: false,
|
|
50
|
-
node
|
|
49
|
+
node
|
|
51
50
|
});
|
|
52
51
|
}
|
|
52
|
+
|
|
53
53
|
});
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
var givenNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : currentNode;
|
|
55
|
+
const getScope = (givenNode = currentNode) => {
|
|
57
56
|
// On Program node, get the outermost scope to avoid return Node.js special function scope or ES modules scope.
|
|
58
|
-
|
|
57
|
+
const inner = givenNode.type !== 'Program';
|
|
59
58
|
|
|
60
|
-
for (
|
|
61
|
-
|
|
59
|
+
for (let node = givenNode; node; node = node.parent) {
|
|
60
|
+
const scope = scopeManager.acquire(node, inner);
|
|
62
61
|
|
|
63
62
|
if (scope) {
|
|
64
63
|
if (scope.type === 'function-expression-name') {
|
|
@@ -72,29 +71,16 @@ function traverseWithContext(ast, scopeManager, additionalContext, visitor) {
|
|
|
72
71
|
return scopeManager.scopes[0];
|
|
73
72
|
};
|
|
74
73
|
|
|
75
|
-
|
|
76
|
-
getDeclaredVariables:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
getBinding: function getBinding(name) {
|
|
80
|
-
var currentScope = getScope();
|
|
74
|
+
const traversalContextBase = Object.freeze({
|
|
75
|
+
getDeclaredVariables: node => scopeManager.getDeclaredVariables(node),
|
|
76
|
+
getBinding: name => {
|
|
77
|
+
let currentScope = getScope();
|
|
81
78
|
|
|
82
79
|
while (currentScope != null) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
88
|
-
var variable = _step.value;
|
|
89
|
-
|
|
90
|
-
if (variable.defs.length && variable.name === name) {
|
|
91
|
-
return variable;
|
|
92
|
-
}
|
|
80
|
+
for (const variable of currentScope.variables) {
|
|
81
|
+
if (variable.defs.length && variable.name === name) {
|
|
82
|
+
return variable;
|
|
93
83
|
}
|
|
94
|
-
} catch (err) {
|
|
95
|
-
_iterator.e(err);
|
|
96
|
-
} finally {
|
|
97
|
-
_iterator.f();
|
|
98
84
|
}
|
|
99
85
|
|
|
100
86
|
currentScope = currentScope.upper;
|
|
@@ -102,23 +88,25 @@ function traverseWithContext(ast, scopeManager, additionalContext, visitor) {
|
|
|
102
88
|
|
|
103
89
|
return null;
|
|
104
90
|
},
|
|
105
|
-
getScope
|
|
91
|
+
getScope
|
|
92
|
+
});
|
|
93
|
+
const traversalContext = Object.freeze({ ...traversalContextBase,
|
|
94
|
+
...additionalContext(traversalContextBase)
|
|
106
95
|
});
|
|
107
|
-
|
|
108
|
-
var selectors = visitor(traversalContext); // add all the selectors from the visitor as listeners
|
|
96
|
+
const selectors = visitor(traversalContext); // add all the selectors from the visitor as listeners
|
|
109
97
|
|
|
110
|
-
Object.keys(selectors).forEach(
|
|
98
|
+
Object.keys(selectors).forEach(selector => {
|
|
111
99
|
// flow doesn't want us to be general here - but it's safe
|
|
112
100
|
// $FlowExpectedError[incompatible-type]
|
|
113
101
|
// $FlowExpectedError[prop-missing]
|
|
114
|
-
|
|
102
|
+
const listener = selectors[selector];
|
|
115
103
|
|
|
116
104
|
if (listener) {
|
|
117
105
|
emitter.on(selector, listener);
|
|
118
106
|
}
|
|
119
107
|
});
|
|
120
|
-
|
|
121
|
-
nodeQueue.forEach(
|
|
108
|
+
const eventGenerator = new _NodeEventGenerator.NodeEventGenerator(emitter);
|
|
109
|
+
nodeQueue.forEach(traversalInfo => {
|
|
122
110
|
currentNode = traversalInfo.node;
|
|
123
111
|
|
|
124
112
|
try {
|
|
@@ -135,5 +123,5 @@ function traverseWithContext(ast, scopeManager, additionalContext, visitor) {
|
|
|
135
123
|
}
|
|
136
124
|
|
|
137
125
|
function traverse(ast, scopeManager, visitor) {
|
|
138
|
-
traverseWithContext(ast, scopeManager,
|
|
126
|
+
traverseWithContext(ast, scopeManager, () => {}, visitor);
|
|
139
127
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hermes-transform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Tools built on top of Hermes-ESTree to enable codebase transformation",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
"url": "git@github.com:facebook/hermes.git"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
+
"@babel/code-frame": "^7.16.0",
|
|
12
13
|
"esquery": "^1.4.0",
|
|
13
|
-
"hermes-eslint": "0.
|
|
14
|
-
"hermes-estree": "0.
|
|
14
|
+
"hermes-eslint": "0.6.0",
|
|
15
|
+
"hermes-estree": "0.6.0"
|
|
15
16
|
},
|
|
16
17
|
"peerDependencies": {
|
|
17
18
|
"prettier": "^2.4.1"
|