|
- function extsToRegExp(exts) {
- return new RegExp("\\.(" + exts.map(function(ext) {
- return ext.replace(/\./g, "\\.");
- }).join("|") + ")(\\?.*)?$");
- }
-
- module.exports = function loadersByExtension(obj) {
- var loaders = [];
- Object.keys(obj).forEach(function(key) {
- var exts = key.split("|");
- var value = obj[key];
- var entry = {
- extensions: exts,
- test: extsToRegExp(exts)
- };
- if(Array.isArray(value)) {
- entry.loaders = value;
- } else if(typeof value === "string") {
- entry.loader = value;
- } else {
- Object.keys(value).forEach(function(valueKey) {
- entry[valueKey] = value[valueKey];
- });
- }
- loaders.push(entry);
- });
- return loaders;
- };
|