aboutsummaryrefslogtreecommitdiff
path: root/node_modules/enhanced-resolve/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/enhanced-resolve/lib')
-rw-r--r--node_modules/enhanced-resolve/lib/Resolver.js50
-rw-r--r--node_modules/enhanced-resolve/lib/ResolverFactory.js5
-rw-r--r--node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js10
3 files changed, 39 insertions, 26 deletions
diff --git a/node_modules/enhanced-resolve/lib/Resolver.js b/node_modules/enhanced-resolve/lib/Resolver.js
index 6b8074569..5994d5d61 100644
--- a/node_modules/enhanced-resolve/lib/Resolver.js
+++ b/node_modules/enhanced-resolve/lib/Resolver.js
@@ -38,14 +38,8 @@ Resolver.prototype.resolve = function resolve(context, path, request, callback)
request: request
};
- var localMissing = [];
- var missing = callback.missing ? {
- push: function(item) {
- callback.missing.push(item);
- localMissing.push(item);
- }
- } : localMissing;
- var log = [];
+ var localMissing;
+ var log;
var message = "resolve '" + request + "' in '" + path + "'";
function writeLog(msg) {
@@ -56,26 +50,40 @@ Resolver.prototype.resolve = function resolve(context, path, request, callback)
return log.join("\n");
}
- function onResolved(err, result) {
+ function onError(err, result) {
if(callback.log) {
for(var i = 0; i < log.length; i++)
callback.log(log[i]);
}
+
if(err) return callback(err);
- if(!result) {
- var error = new Error("Can't " + message);
- error.details = logAsString();
- error.missing = localMissing;
- resolver.applyPlugins("no-resolve", obj, error);
- return callback(error);
+
+ var error = new Error("Can't " + message);
+ error.details = logAsString();
+ error.missing = localMissing;
+ resolver.applyPlugins("no-resolve", obj, error);
+ return callback(error);
+ }
+
+ function onResolve(err, result) {
+ if(!err && result) {
+ return callback(null, result.path === false ? false : result.path + (result.query || ""), result);
}
- return callback(null, result.path === false ? false : result.path + (result.query || ""), result);
+
+ localMissing = [];
+ log = [];
+
+ return resolver.doResolve("resolve", obj, message, createInnerCallback(onError, {
+ log: writeLog,
+ missing: localMissing,
+ stack: callback.stack
+ }));
}
- return this.doResolve("resolve", obj, message, createInnerCallback(onResolved, {
- log: writeLog,
- missing: missing,
- stack: callback.stack
- }, null));
+
+ onResolve.missing = callback.missing;
+ onResolve.stack = callback.stack;
+
+ return this.doResolve("resolve", obj, message, onResolve);
};
Resolver.prototype.doResolve = function doResolve(type, request, message, callback) {
diff --git a/node_modules/enhanced-resolve/lib/ResolverFactory.js b/node_modules/enhanced-resolve/lib/ResolverFactory.js
index 682ef4640..cd167aaf7 100644
--- a/node_modules/enhanced-resolve/lib/ResolverFactory.js
+++ b/node_modules/enhanced-resolve/lib/ResolverFactory.js
@@ -78,6 +78,9 @@ exports.createResolver = function(options) {
// Use this cache object to unsafely cache the successful requests
var unsafeCache = options.unsafeCache || false;
+ // Whether or not the unsafeCache should include request context as part of the cache key.
+ var cacheWithContext = typeof options.cacheWithContext !== "undefined" ? options.cacheWithContext : true;
+
// A function which decides whether a request should be cached or not.
// an object is passed with `path` and `request` properties.
var cachePredicate = options.cachePredicate || function() {
@@ -145,7 +148,7 @@ exports.createResolver = function(options) {
// resolve
if(unsafeCache) {
- plugins.push(new UnsafeCachePlugin("resolve", cachePredicate, unsafeCache, "new-resolve"));
+ plugins.push(new UnsafeCachePlugin("resolve", cachePredicate, unsafeCache, cacheWithContext, "new-resolve"));
plugins.push(new ParsePlugin("new-resolve", "parsed-resolve"));
} else {
plugins.push(new ParsePlugin("resolve", "parsed-resolve"));
diff --git a/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js b/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js
index 61d9b4730..ed07fd561 100644
--- a/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js
+++ b/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js
@@ -4,17 +4,18 @@
*/
var createInnerCallback = require("./createInnerCallback");
-function UnsafeCachePlugin(source, filterPredicate, cache, target) {
+function UnsafeCachePlugin(source, filterPredicate, cache, withContext, target) {
this.source = source;
this.filterPredicate = filterPredicate;
+ this.withContext = withContext;
this.cache = cache || {};
this.target = target;
}
module.exports = UnsafeCachePlugin;
-function getCacheId(request) {
+function getCacheId(request, withContext) {
return JSON.stringify({
- context: request.context,
+ context: withContext ? request.context : "",
path: request.path,
query: request.query,
request: request.request
@@ -25,9 +26,10 @@ UnsafeCachePlugin.prototype.apply = function(resolver) {
var filterPredicate = this.filterPredicate;
var cache = this.cache;
var target = this.target;
+ var withContext = this.withContext;
resolver.plugin(this.source, function(request, callback) {
if(!filterPredicate(request)) return callback();
- var cacheId = getCacheId(request);
+ var cacheId = getCacheId(request, withContext);
var cacheEntry = cache[cacheId];
if(cacheEntry) {
return callback(null, cacheEntry);