UNPKG

891 BJavaScriptView Raw
1module.exports = function loadersByExtension(obj) {
2 var loaders = [];
3 var extensions = Object.keys(obj).map(function(key) {
4 return key.split("|");
5 }).reduce(function(arr, a) {
6 arr.push.apply(arr, a);
7 return arr;
8 }, []);
9 Object.keys(obj).forEach(function(key) {
10 var exts = key.split("|");
11 var value = obj[key];
12 var entry = {
13 extensions: exts,
14 test: extsToRegExp(exts),
15 loaders: value
16 };
17 if(Array.isArray(value)) {
18 entry.loaders = value;
19 } else if(typeof value === "string") {
20 entry.loader = value;
21 } else {
22 Object.keys(value).forEach(function(key) {
23 entry[key] = value[key];
24 });
25 }
26 loaders.push(entry);
27 });
28 return loaders;
29};
30
31function extsToRegExp(exts) {
32 return new RegExp("\\.(" + exts.map(function(ext) {
33 return ext.replace(/\./g, "\\.") + "(\\?.*)?";
34 }).join("|") + ")$");
35}