43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
var readdir = require("fs-readdir-recursive");
|
|
var index = require("./index");
|
|
var babel = require("babel-core");
|
|
var util = require("babel-core").util;
|
|
var path = require("path");
|
|
var fs = require("fs");
|
|
var _ = require("lodash");
|
|
|
|
exports.readdirFilter = function (filename) {
|
|
return readdir(filename).filter(function (filename) {
|
|
return util.canCompile(filename);
|
|
});
|
|
};
|
|
|
|
exports.readdir = readdir;
|
|
|
|
exports.canCompile = util.canCompile;
|
|
|
|
exports.shouldIgnore = function (loc) {
|
|
return util.shouldIgnore(loc, index.opts.ignore, index.opts.only);
|
|
};
|
|
|
|
exports.addSourceMappingUrl = function (code, loc) {
|
|
return code + "\n//# sourceMappingURL=" + path.basename(loc);
|
|
};
|
|
|
|
exports.transform = function (filename, code, opts) {
|
|
opts = _.defaults(opts || {}, index.opts);
|
|
opts.filename = filename;
|
|
opts.ignore = null;
|
|
opts.only = null;
|
|
|
|
var result = babel.transform(code, opts);
|
|
result.filename = filename;
|
|
result.actual = code;
|
|
return result;
|
|
};
|
|
|
|
exports.compile = function (filename, opts) {
|
|
var code = fs.readFileSync(filename, "utf8");
|
|
return exports.transform(filename, code, opts);
|
|
};
|