Skip to content

Commit dc08ab5

Browse files
committed
feature: @putout/engine-runner: find: override traverse
1 parent 6dd6b23 commit dc08ab5

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

packages/engine-runner/lib/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ const run = ({ast, fix, shebang, pluginsFind, pluginsTraverse, template, merge,
6262
shebang,
6363
template,
6464
pluginsFind,
65+
traverse,
6566
}),
6667
...runWithMerge({
6768
ast,
@@ -100,7 +101,7 @@ function runWithMerge({ast, fix, shebang, template, pluginsTraverse, merge, trav
100101
return places;
101102
}
102103

103-
function runWithoutMerge({ast, fix, shebang, template, pluginsFind}) {
104+
function runWithoutMerge({ast, fix, shebang, template, pluginsFind, traverse}) {
104105
const places = [];
105106

106107
for (const {rule, plugin, msg, options} of pluginsFind) {
@@ -116,6 +117,7 @@ function runWithoutMerge({ast, fix, shebang, template, pluginsFind}) {
116117
fix,
117118
shebang,
118119
template,
120+
traverse,
119121
});
120122

121123
if (!items.length)

packages/engine-runner/lib/super-find.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@ const {traverse: babelTraverse, types} = require('@putout/babel');
55
const {generate} = require('@putout/engine-parser');
66
const {merge} = babelTraverse.visitors;
77

8-
module.exports = function superFind({rule, find, ast, options, template}) {
8+
module.exports = function superFind({rule, find, ast, options, template, traverse = babelTraverse}) {
99
const pushItems = [];
1010

1111
const push = (a) => {
1212
pushItems.push(a);
1313
};
1414

1515
const returnItems = find(ast, {
16-
traverse: traverse({
16+
traverse: createTraverse({
1717
rule,
1818
options,
1919
template,
20+
traverse,
2021
}),
2122
generate,
2223
types,
@@ -30,12 +31,12 @@ module.exports = function superFind({rule, find, ast, options, template}) {
3031
];
3132
};
3233

33-
const traverse = ({rule, options, template}) => (ast, visitor) => {
34+
const createTraverse = ({rule, options, template, traverse}) => (ast, visitor) => {
3435
const templateVisitors = merge(template({
3536
rule,
3637
visitor,
3738
options,
3839
}));
3940

40-
return babelTraverse(ast, templateVisitors);
41+
return traverse(ast, templateVisitors);
4142
};

packages/engine-runner/test/runner.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,14 +1026,7 @@ test('putout: runner: runPlugins: override traverse', (t) => {
10261026
plugins,
10271027
});
10281028

1029-
const expected = [
1030-
ast, {
1031-
_exploded: true,
1032-
_verified: true,
1033-
},
1034-
];
1035-
1036-
t.calledWith(traverse, expected);
1029+
t.calledCount(traverse, 2);
10371030
t.end();
10381031
});
10391032

0 commit comments

Comments
 (0)