add customisable extensions to require hook #75
This commit is contained in:
@@ -2,6 +2,7 @@ require("./polyfill");
|
||||
|
||||
var sourceMapSupport = require("source-map-support");
|
||||
var to5 = require("./index");
|
||||
var _ = require("lodash");
|
||||
|
||||
sourceMapSupport.install({
|
||||
retrieveSourceMap: function (source) {
|
||||
@@ -17,12 +18,14 @@ sourceMapSupport.install({
|
||||
}
|
||||
});
|
||||
|
||||
//
|
||||
|
||||
var ignoreRegex = /node_modules/;
|
||||
var exts = [];
|
||||
var maps = {};
|
||||
var old = require.extensions[".js"];
|
||||
|
||||
require.extensions[".js"] =
|
||||
require.extensions[".es6"] = function (m, filename) {
|
||||
var loader = function (m, filename) {
|
||||
if (ignoreRegex && ignoreRegex.test(filename)) {
|
||||
return old.apply(this, arguments);
|
||||
}
|
||||
@@ -36,6 +39,27 @@ require.extensions[".es6"] = function (m, filename) {
|
||||
m._compile(result.code, filename);
|
||||
};
|
||||
|
||||
module.exports = function (_ignoreRegex) {
|
||||
ignoreRegex = _ignoreRegex;
|
||||
var hookExtensions = function (_exts) {
|
||||
_.each(exts, function (ext) {
|
||||
delete require.extensions[ext];
|
||||
});
|
||||
|
||||
exts = _exts;
|
||||
|
||||
_.each(exts, function (ext) {
|
||||
require.extensions[ext] = loader;
|
||||
});
|
||||
};
|
||||
|
||||
hookExtensions([".es6", ".js"]);
|
||||
|
||||
module.exports = function (opts) {
|
||||
opts = opts || {};
|
||||
if (_.isRegExp(opts)) opts = { ignoreRegex: opts };
|
||||
|
||||
if (opts.ignoreRegex != null) {
|
||||
ignoreRegex = opts.ignoreRegex;
|
||||
}
|
||||
|
||||
if (opts.extensions) hookExtensions(opts.extensions);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user