add sourceMapName and sourceFileName options, make them default to the filename option - resolves #44

This commit is contained in:
Sebastian McKenzie
2014-10-11 15:01:42 +11:00
parent 298184763a
commit 1571ba2045
3 changed files with 31 additions and 13 deletions

View File

@@ -24,10 +24,15 @@ var transform = module.exports = function (code, opts) {
format: {}
});
_.defaults(opts, {
sourceFileName: opts.filename,
sourceMapName: opts.filename
});
ensureTransformerNames("blacklist", opts.blacklist);
ensureTransformerNames("whitelist", opts.whitelist);
return util.parse(opts.filename, code, function (tree) {
return util.parse(opts, code, function (tree) {
return transform._run(code, tree, opts);
});
};
@@ -89,7 +94,6 @@ transform.test = function (task, assert) {
var opts = task.options;
opts.filename = actual.filename;
opts.ast = true;
var actualCode = actual.code.trim();
@@ -98,7 +102,7 @@ transform.test = function (task, assert) {
actualCode = recast.prettyPrint(actualAst).code;
var expectCode = expect.code.trim();
var expectAst = util.parse(expect.filename, expectCode);
var expectAst = util.parse(expect, expectCode);
var expectResult = recast.prettyPrint(expectAst);
expectCode = expectResult.code;

View File

@@ -184,17 +184,21 @@ exports.repeat = function (width, cha) {
exports.generate = function (ast, opts) {
var printOpts = {};
if (opts.sourceMap) {
printOpts.sourceMapName = path.basename(opts.filename);
printOpts.sourceMapName = opts.sourceMapName;
}
return recast.print(ast, printOpts);
};
exports.parse = function (filename, code, callback) {
exports.parse = function (opts, code, callback) {
try {
var ast = recast.parse(code, {
sourceFileName: path.basename(filename)
});
var recastOpts = {};
if (opts.sourceMap) {
recastOpts.sourceFileName = opts.sourceFileName;
recastOpts.sourceRoot = opts.sourceRoot;
}
var ast = recast.parse(code, recastOpts);
if (callback) {
return callback(ast);
@@ -204,7 +208,7 @@ exports.parse = function (filename, code, callback) {
} catch (err) {
if (!err._6to5) {
err._6to5 = true;
err.message = filename + ": " + err.message;
err.message = opts.filename + ": " + err.message;
if (err.lineNumber) {
var frame = exports.codeFrame(code, err.lineNumber, err.column);
err.message = err.message + frame;
@@ -233,6 +237,8 @@ try {
var loc = templatesLoc + "/" + name;
var code = fs.readFileSync(loc, "utf8");
exports.templates[key] = exports.removeProperties(exports.parse(loc, code).program);
var ast = exports.parse({ filename: loc }, code).program;
ast = exports.removeProperties(ast);
exports.templates[key] = ast;
});
}