babel/lib/6to5/node.js
2014-09-29 20:38:26 +10:00

52 lines
1.1 KiB
JavaScript

var transform = require("./transform");
var fs = require("fs");
var _ = require("lodash");
exports.browserify = require("./browserify");
exports.middleware = require("./middleware");
exports.register = function (includeNodeModules) {
var old = require.extensions[".js"];
require.extensions[".js"] = function (m, filename) {
if (!includeNodeModules && filename.indexOf("node_modules") >= 0) {
return old.apply(this, arugments);
}
m._compile(exports.transformFileSync(filename, {
sourceMap: true
}), filename);
};
};
exports.transform = transform;
exports.transformFile = function (filename, opts, callback) {
if (_.isFunction(opts)) {
callback = opts;
opts = {};
}
opts.filename = filename;
fs.readFile(filename, function (err, raw) {
if (err) return callback(err);
var code;
try {
code = transform(raw, opts);
} catch (err) {
return callback(err);
}
callback(null, code);
});
};
exports.transformFileSync = function (filename, opts) {
opts = opts || {};
opts.filename = filename;
return transform(fs.readFileSync(filename), opts);
};