move declaration insertion to a hidden transformer, add tabWidth to recast prettyPrint

This commit is contained in:
Sebastian McKenzie 2014-10-18 15:45:22 +11:00
parent 234d9997c8
commit d3b088cc6d
3 changed files with 24 additions and 14 deletions

View File

@ -22,8 +22,7 @@ File.normaliseOptions = function (opts) {
blacklist: [], blacklist: [],
whitelist: [], whitelist: [],
sourceMap: false, sourceMap: false,
filename: "unknown", filename: "unknown"
format: {}
}); });
_.defaults(opts, { _.defaults(opts, {
@ -80,14 +79,6 @@ File.prototype.transform = function (ast) {
transformer.transform(self); transformer.transform(self);
}); });
var body = ast.program.body;
_.each(this.declarations, function (declar) {
body.unshift(b.variableDeclaration("var", [
b.variableDeclarator(declar.uid, declar.node)
]));
});
return this.generate(); return this.generate();
}; };
@ -95,7 +86,10 @@ File.prototype.generate = function () {
var opts = this.opts; var opts = this.opts;
var ast = this.ast; var ast = this.ast;
var printOpts = {}; var printOpts = {
tabWidth: 2
};
if (opts.sourceMap) { if (opts.sourceMap) {
printOpts.sourceMapName = opts.sourceMapName; printOpts.sourceMapName = opts.sourceMapName;
} }

View File

@ -39,11 +39,13 @@ transform.test = function (task, assert) {
var actualCode = actual.code.trim(); var actualCode = actual.code.trim();
var expectCode = expect.code.trim(); var expectCode = expect.code.trim();
var printOpts = { tabWidth: 2 };
result = transform(actualCode, getOpts(actual.filename)); result = transform(actualCode, getOpts(actual.filename));
actualCode = recast.prettyPrint(result.ast).code; actualCode = recast.prettyPrint(result.ast, printOpts).code;
var expectAst = util.parse(expect, expectCode); var expectAst = util.parse(expect, expectCode);
var expectResult = recast.prettyPrint(expectAst); var expectResult = recast.prettyPrint(expectAst, printOpts);
expectCode = expectResult.code; expectCode = expectResult.code;
assert.equal(actualCode, expectCode); assert.equal(actualCode, expectCode);
@ -98,7 +100,9 @@ transform.transformers = {
jsx: require("./transformers/jsx"), jsx: require("./transformers/jsx"),
_aliasFunctions: require("./transformers/_alias-functions"), _aliasFunctions: require("./transformers/_alias-functions"),
_blockHoist: require("./transformers/_block-hoist") _blockHoist: require("./transformers/_block-hoist"),
_declarations: require("./transformers/_declarations"),
_useStrict: require("./transformers/_use-strict")
}; };
_.each(transform.transformers, function (transformer, key) { _.each(transform.transformers, function (transformer, key) {

View File

@ -0,0 +1,12 @@
var b = require("recast").types.builders;
var _ = require("lodash");
module.exports = function (ast, file) {
var body = ast.program.body;
_.each(file.declarations, function (declar) {
body.unshift(b.variableDeclaration("var", [
b.variableDeclarator(declar.uid, declar.node)
]));
});
};