always return { map, code } object on transform, update apis, change sourceMap comment adding, closes #6, #7 and #8

This commit is contained in:
Sebastian McKenzie
2014-10-08 23:49:19 +11:00
parent f77e7d71d2
commit 4cb7b786dd
5 changed files with 30 additions and 39 deletions

View File

@@ -18,18 +18,18 @@ exports.transformFile = function (filename, opts, callback) {
opts.filename = filename;
fs.readFile(filename, function (err, raw) {
fs.readFile(filename, function (err, code) {
if (err) return callback(err);
var code;
var result;
try {
code = transform(raw, opts);
result = transform(code, opts);
} catch (err) {
return callback(err);
}
callback(null, code);
callback(null, result);
});
};

View File

@@ -9,16 +9,13 @@ var transform = module.exports = function (code, opts) {
code = (code || "") + "";
_.defaults(opts, {
sourceMapObject: false,
blacklist: [],
whitelist: [],
sourceMap: false,
filename: "unknown",
format: {}
blacklist: [],
whitelist: [],
sourceMap: false,
filename: "unknown",
format: {}
});
if (opts.sourceMapObject) opts.sourceMap = true;
return util.parse(opts.filename, code, function (tree) {
return transform._run(code, tree, opts);
});
@@ -44,11 +41,12 @@ transform._run = function (code, tree, opts) {
});
var genOpts = {
file: path.basename(opts.filename),
format: opts.format
};
if (opts.sourceMap) {
genOpts.sourceMap = path.basename(opts.filename);
genOpts.sourceMap = genOpts.file;
genOpts.sourceContent = code;
genOpts.sourceMapWithCode = true;
}
@@ -56,13 +54,13 @@ transform._run = function (code, tree, opts) {
var result = util.generate(tree, genOpts);
if (opts.sourceMap) {
if (opts.sourceMapObject) {
return result;
} else {
return result.code + "\n" + util.sourceMapToComment(result.map) + "\n";
if (opts.sourceMap === "comment") {
result.code += "\n" + util.sourceMapToComment(result.map);
}
return result;
} else {
return result + "\n";
return { code: result, map: null };
}
};
@@ -82,7 +80,7 @@ transform.test = function (actual, expect, opts) {
_.defaults(opts, { filename: "test" });
var actualCode = actual.code.trim();
var transformedCode = transform(actualCode, opts);
var transformedCode = transform(actualCode, opts).code;
var actualAst = util.parse(actual.filename, transformedCode);
actualCode = util.generate(actualAst);