add sourceMapName and sourceFileName options, make them default to the filename option - resolves #44
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user