Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

loadersByExtension.js 670 B

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