Skip to content

Commit d8d110a

Browse files
Merge pull request #82 from Turbo87/recast
Replace `recast.transform()` call with `recast.traverse()`
2 parents b839009 + 2331571 commit d8d110a

2 files changed

Lines changed: 11 additions & 7 deletions

File tree

transforms/no-implicit-this/helpers/plugin.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const recast = require('ember-template-recast');
2+
13
// everything is copy-pasteable to astexplorer.net.
24
// sorta. telemetry needs to be defined.
35
// telemtry can be populated with -mock-telemetry.json
@@ -6,8 +8,8 @@ const KNOWN_HELPERS = require('./known-helpers');
68
/**
79
* plugin entrypoint
810
*/
9-
function transformPlugin(env, options = {}) {
10-
let { builders: b } = env.syntax;
11+
function transform(root, options = {}) {
12+
let b = recast.builders;
1113

1214
let scopedParams = [];
1315
let telemetry = options.telemetry || {};
@@ -76,7 +78,7 @@ function transformPlugin(env, options = {}) {
7678

7779
let inAttrNode = false;
7880

79-
return {
81+
recast.traverse(root, {
8082
Block: paramTracker,
8183
ElementNode: paramTracker,
8284

@@ -146,7 +148,7 @@ function transformPlugin(env, options = {}) {
146148
// <div {{foo bar=BAZ}} />
147149
handleHash(node.hash);
148150
},
149-
};
151+
});
150152
}
151153

152154
function populateInvokeables(telemetry) {
@@ -169,4 +171,4 @@ function populateInvokeables(telemetry) {
169171
return [components, helpers];
170172
}
171173

172-
module.exports = transformPlugin;
174+
module.exports = transform;

transforms/no-implicit-this/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const fs = require('fs');
33

44
const recast = require('ember-template-recast');
55
const { getTelemetry } = require('ember-codemods-telemetry-helpers');
6-
const transformPlugin = require('./helpers/plugin');
6+
const transform = require('./helpers/plugin');
77
const { getOptions: getCLIOptions } = require('codemod-cli');
88
const DEFAULT_OPTIONS = {};
99

@@ -49,5 +49,7 @@ module.exports = function transformer(file /*, api */) {
4949
return;
5050
}
5151

52-
return recast.transform(file.source, env => transformPlugin(env, options)).code;
52+
let root = recast.parse(file.source);
53+
transform(root, options);
54+
return recast.print(root);
5355
};

0 commit comments

Comments
 (0)