always return { map, code } object on transform, update apis, change sourceMap comment adding, closes #6, #7 and #8
This commit is contained in:
@@ -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);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user