diff --git a/lib/LoadersList.js b/lib/LoadersList.js index a5d7eb3..4c5dae6 100644 --- a/lib/LoadersList.js +++ b/lib/LoadersList.js @@ -60,21 +60,21 @@ function getLoadersFromObject(element) { throw new Error("Element from loaders list should have one of the fields 'loader' or 'loaders'"); } -LoadersList.prototype.matchPart = function matchPart(str, test) { +LoadersList.prototype.matchPart = function matchPart(str, test, context) { if(!test) return true; var matcher = asMatcher(test); - return matcher(str); + return matcher(str, context); }; -LoadersList.prototype.match = function match(str) { +LoadersList.prototype.match = function match(str, context) { return this.list.map(function(element) { if(Array.isArray(element)) { for(var i = 0; i < element.length; i++) { - if(this.matchObject(str, element[i])) + if(this.matchObject(str, element[i], context)) return getLoadersFromObject(element[i]); } } else { - if(this.matchObject(str, element)) + if(this.matchObject(str, element, context)) return getLoadersFromObject(element); } }, this).filter(Boolean).reduce(function(array, r) { @@ -85,12 +85,12 @@ LoadersList.prototype.match = function match(str) { }, []) || []; }; -LoadersList.prototype.matchObject = function matchObject(str, obj) { +LoadersList.prototype.matchObject = function matchObject(str, obj, context) { if(obj.test) - if(!this.matchPart(str, obj.test)) return false; + if(!this.matchPart(str, obj.test, context)) return false; if(obj.include) - if(!this.matchPart(str, obj.include)) return false; + if(!this.matchPart(str, obj.include, context)) return false; if(obj.exclude) - if(this.matchPart(str, obj.exclude)) return false; + if(this.matchPart(str, obj.exclude, context)) return false; return true; }; \ No newline at end of file