fix sourcemap filename resolution

This commit is contained in:
Sebastian McKenzie
2014-10-01 14:36:31 +10:00
parent 0727240873
commit 4aeb62bee9
4 changed files with 50 additions and 33 deletions

View File

@@ -1,8 +1,8 @@
var escodegen = require("escodegen");
var traverse = require("./traverse");
var assert = require("assert");
var util = require("./util");
var _ = require("lodash");
var traverse = require("./traverse");
var assert = require("assert");
var path = require("path");
var util = require("./util");
var _ = require("lodash");
var transform = module.exports = function (code, opts) {
opts = opts || {};
@@ -20,7 +20,7 @@ var transform = module.exports = function (code, opts) {
return util.parse(opts.filename, code, function (tree) {
return transform._run(code, tree, opts);
}, true);
});
};
transform._run = function (code, tree, opts) {
@@ -43,23 +43,18 @@ transform._run = function (code, tree, opts) {
});
var genOpts = {
comment: true,
format: _.merge(opts.format, {
indent: {
style: " "
}
})
format: opts.format
};
if (opts.sourceMap) {
genOpts.sourceMap = true;
genOpts.sourceMap = path.basename(opts.filename);
genOpts.sourceContent = code;
genOpts.sourceMapWithCode = true;
}
var result = escodegen.generate(tree, genOpts);
var result = util.generate(tree, genOpts);
if (genOpts.sourceMapWithCode) {
if (opts.sourceMap) {
if (opts.sourceMapObject) {
return result;
} else {
@@ -82,19 +77,18 @@ transform._runTransformer = function (transformer, tree, opts, generateUid) {
};
transform.test = function (actual, expect, opts, debug) {
opts = opts || {};
_.defaults(opts, { filename: "test" });
var actualCode = actual.code.trim();
var transformedCode = transform(actualCode, opts);
var actualAst = util.parse(actual.filename, transformedCode);
actualCode = util.generate(actualAst);
var expectCode = expect.code.trim();
var expectAst = util.parse(expect.filename, expectCode);
expectCode = util.generate(expectAst);
actualCode = escodegen.generate(actualAst);
expectCode = escodegen.generate(expectAst);
assert.equal(actualCode, expectCode);
};