move declaration insertion to a hidden transformer, add tabWidth to recast prettyPrint
This commit is contained in:
parent
234d9997c8
commit
d3b088cc6d
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
12
lib/6to5/transformers/_declarations.js
Normal file
12
lib/6to5/transformers/_declarations.js
Normal 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)
|
||||||
|
]));
|
||||||
|
});
|
||||||
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user