enhanced-resolve
Advanced tools
Comparing version 0.6.0 to 0.6.1
@@ -5,2 +5,4 @@ /* | ||
*/ | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function DirectoryDefaultFilePlugin(files) { | ||
@@ -15,5 +17,13 @@ this.files = files; | ||
var fs = this.fileSystem; | ||
var log = callback.log; | ||
var directory = this.join(request.path, request.request); | ||
fs.stat(directory, function(err, stat) { | ||
if(err || !stat || !stat.isDirectory()) return callback(); | ||
if(err || !stat) { | ||
if(callback.log) callback.log(directory + " doesn't exist (directory default file)"); | ||
return callback(); | ||
} | ||
if(!stat.isDirectory()) { | ||
if(callback.log) callback.log(directory + " is not a directory (directory default file)"); | ||
return callback(); | ||
} | ||
this.forEachBail(files, function(file, callback) { | ||
@@ -24,6 +34,6 @@ this.doResolve("file", { | ||
request: file | ||
}, function(err, result) { | ||
}, createLoggingCallback(function(err, result) { | ||
if(!err && result) return callback(result); | ||
return callback(); | ||
}); | ||
}, log, "directory default file " + file)); | ||
}.bind(this), function(result) { | ||
@@ -30,0 +40,0 @@ if(!result) return callback(); |
@@ -5,2 +5,4 @@ /* | ||
*/ | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function DirectoryDescriptionFilePlugin(filename, fields) { | ||
@@ -18,4 +20,9 @@ this.filename = filename; | ||
var directory = this.join(request.path, request.request); | ||
fs.readFile(this.join(directory, filename), function(err, content) { | ||
if(err) return callback(); | ||
var descriptionFilePath = this.join(directory, filename); | ||
fs.readFile(descriptionFilePath, function(err, content) { | ||
if(err) { | ||
if(callback.log) | ||
callback.log(descriptionFilePath + " doesn't exist (directory description file)"); | ||
return callback(); | ||
} | ||
content = content.toString("utf-8"); | ||
@@ -25,2 +32,4 @@ try { | ||
} catch(e) { | ||
if(callback.log) | ||
callback.log(descriptionFilePath + " (directory description file): " + e); | ||
return callback(e); | ||
@@ -54,10 +63,11 @@ } | ||
if(mainModules.length == 0) return callback(); | ||
var mainModule = mainModules.shift(); | ||
return this.doResolve(["file", "directory"], { | ||
path: directory, | ||
query: request.query, | ||
request: mainModules.shift() | ||
}, function(err, result) { | ||
request: mainModule | ||
}, createLoggingCallback(function(err, result) { | ||
if(!err && result) return callback(null, result); | ||
return next.call(this); | ||
}.bind(this)); | ||
}.bind(this), callback.log, "use " + mainModule + " from " + filename)); | ||
}.call(this)) | ||
@@ -64,0 +74,0 @@ }.bind(this)); |
@@ -16,4 +16,3 @@ /* | ||
fs.stat(directory, function(err, stat) { | ||
if(err) return callback(err); | ||
if(!stat || !stat.isDirectory()) return callback(); | ||
if(!err && stat && stat.isDirectory()) | ||
return callback(null, { | ||
@@ -25,4 +24,9 @@ path: directory, | ||
}); | ||
if(callback.log) { | ||
if(err) callback.log(directory + " doesn't exist"); | ||
else callback.log(directory + " is not a directory"); | ||
} | ||
return callback(); | ||
}); | ||
}); | ||
}; |
@@ -16,2 +16,3 @@ /* | ||
var addrs = appendings.map(function(a) { return addr + a }); | ||
var log = callback.log; | ||
this.forEachBail(addrs, function(addr, callback) { | ||
@@ -21,2 +22,6 @@ fs.stat(addr, function(err, stat) { | ||
return callback(addr); | ||
if(log) { | ||
if(err) log(addr + " doesn't exist"); | ||
else log(addr + " is not a file"); | ||
} | ||
return callback(); | ||
@@ -23,0 +28,0 @@ }); |
@@ -5,2 +5,4 @@ /* | ||
*/ | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function ModuleAliasPlugin(aliasMap) { | ||
@@ -25,3 +27,4 @@ this.aliasMap = aliasMap; | ||
if(request.request.indexOf(aliasValue + "/") !== 0 && request.request != aliasValue) { | ||
var newRequest = this.parse(aliasValue + request.request.substr(aliasName.length)); | ||
var newRequestStr = aliasValue + request.request.substr(aliasName.length); | ||
var newRequest = this.parse(newRequestStr); | ||
var obj = { | ||
@@ -33,5 +36,6 @@ path: request.path, | ||
}; | ||
if(newRequest.module) return this.doResolve("module", obj, callback); | ||
if(newRequest.directory) return this.doResolve("directory", obj, callback); | ||
return this.doResolve(["file", "directory"], obj, callback); | ||
var newCallback = createLoggingCallback(callback, callback.log, "aliased with mapping " + JSON.stringify(aliasName) + ": " + JSON.stringify(aliasValue) + " to " + newRequestStr); | ||
if(newRequest.module) return this.doResolve("module", obj, newCallback); | ||
if(newRequest.directory) return this.doResolve("directory", obj, newCallback); | ||
return this.doResolve(["file", "directory"], obj, newCallback); | ||
} | ||
@@ -38,0 +42,0 @@ } |
@@ -5,2 +5,4 @@ /* | ||
*/ | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function ModuleAsDirectoryPlugin(moduleType) { | ||
@@ -27,3 +29,6 @@ this.moduleType = moduleType; | ||
fs.stat(modulePath, function(err, stat) { | ||
if(err || !stat) return callback(); | ||
if(err || !stat) { | ||
if(callback.log) callback.log(modulePath + " doesn't exist (module as directory)"); | ||
return callback(); | ||
} | ||
if(stat.isDirectory()) { | ||
@@ -36,2 +41,3 @@ return this.doResolve(request.directory ? "directory" : ["file", "directory"], { | ||
} | ||
if(callback.log) callback.log(modulePath + " is not a directory (module as directory)"); | ||
return callback(); | ||
@@ -38,0 +44,0 @@ }.bind(this)); |
@@ -5,2 +5,4 @@ /* | ||
*/ | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function ModulesInDirectoriesPlugin(moduleType, directories) { | ||
@@ -21,2 +23,3 @@ this.moduleType = moduleType; | ||
var limit = -1; | ||
var log = callback.log; | ||
while(pathSeqment) { | ||
@@ -45,7 +48,7 @@ paths.push(addr[0]); | ||
directory: request.directory | ||
}, function(err, result) { | ||
}, createLoggingCallback(function(err, result) { | ||
if(err) return callback(err); | ||
if(!result) return callback(); | ||
return callback(null, result); | ||
}); | ||
}, log, "looking for modules in " + addr)); | ||
return; | ||
@@ -52,0 +55,0 @@ } |
@@ -5,2 +5,4 @@ /* | ||
*/ | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function ModulesInRootPlugin(moduleType, path) { | ||
@@ -21,8 +23,8 @@ this.moduleType = moduleType; | ||
directory: request.directory | ||
}, function(err, result) { | ||
}, createLoggingCallback(function loggingCallback(err, result) { | ||
if(err) return callback(err); | ||
if(!result) return callback(); | ||
return callback(null, result); | ||
}); | ||
}, callback.log, "looking for modules in " + path)); | ||
}); | ||
}; |
@@ -5,2 +5,4 @@ /* | ||
*/ | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function ModuleTemplatesPlugin(moduleType, templates, targetModuleType) { | ||
@@ -18,2 +20,3 @@ this.moduleType = moduleType; | ||
var fs = this.fileSystem; | ||
var log = callback.log; | ||
var i = request.request.indexOf("/"), | ||
@@ -37,9 +40,9 @@ j = request.request.indexOf("\\"); | ||
directory: request.directory | ||
}, function(err, result) { | ||
}, createLoggingCallback(function(err, result) { | ||
if(err) return callback(err); | ||
if(!result) return callback(); | ||
return callback(null, result); | ||
}); | ||
}, log, "module variation " + moduleFinalName)); | ||
}.bind(this), callback); | ||
}); | ||
}; |
@@ -6,2 +6,4 @@ /* | ||
var Tapable = require("tapable"); | ||
var createLoggingCallback = require("./createLoggingCallback"); | ||
function Resolver(fileSystem) { | ||
@@ -40,2 +42,3 @@ Tapable.call(this); | ||
} | ||
onResolved.log = callback.log; | ||
if(request.module) return this.doResolve("module", obj, onResolved); | ||
@@ -49,20 +52,43 @@ if(request.directory) return this.doResolve("directory", obj, onResolved); | ||
this.applyPlugins("resolve-step", types, request); | ||
var log = []; | ||
function writeLog(msg) { | ||
log.push(msg); | ||
} | ||
function logAsString() { | ||
return log.join("\n"); | ||
} | ||
if(types.length == 1 && !noError) { | ||
// If only one type, we can pass the error. | ||
return this.applyPluginsParallelBailResult(types[0], request, function(err, result) { | ||
function loggingCallback(err, result) { | ||
if(callback.log) { | ||
callback.log("resolve " + types[0] + " " + request.request + " in " + request.path); | ||
for(var i = 0; i < log.length; i++) | ||
callback.log(" " + log[i]); | ||
} | ||
if(err) return callback(err); | ||
if(!result) return callback(new Error("Cannot resolve " + types[0] + " " + request.request + " in " + request.path)); | ||
return callback(null, result); | ||
}); | ||
if(result) return callback(null, result); | ||
var error = new Error("Cannot resolve " + types[0] + " " + request.request + " in " + request.path); | ||
error.details = logAsString(); | ||
return callback(error); | ||
} | ||
loggingCallback.log = writeLog; | ||
return this.applyPluginsParallelBailResult(types[0], request, loggingCallback); | ||
} | ||
// For multiple type we have to ignore the error | ||
this.forEachBail(types, function(type, callback) { | ||
this.applyPluginsParallelBailResult(type, request, function(err, result) { | ||
this.applyPluginsParallelBailResult(type, request, createLoggingCallback(function(err, result) { | ||
if(!err && result) return callback(result); | ||
callback(); | ||
}); | ||
}, writeLog, "resolve " + type)); | ||
}.bind(this), function(result) { | ||
if(callback.log) { | ||
callback.log("resolve " + types.join(" or ") + " " + request.request + " in " + request.path); | ||
for(var i = 0; i < log.length; i++) | ||
callback.log(" " + log[i]); | ||
} | ||
if(noError && !result) return callback(); | ||
if(!result) return callback(new Error("Cannot resolve " + types.join(" or ") + " " + request.request + " in " + request.path)); | ||
return callback(null, result); | ||
if(result) return callback(null, result); | ||
var error = new Error("Cannot resolve " + types.join(" or ") + " " + request.request + " in " + request.path); | ||
error.details = logAsString(); | ||
return callback(error); | ||
}); | ||
@@ -69,0 +95,0 @@ }; |
{ | ||
"name": "enhanced-resolve", | ||
"version": "0.6.0", | ||
"version": "0.6.1", | ||
"author": "Tobias Koppers @sokra", | ||
@@ -5,0 +5,0 @@ "description": "Offers a async require.resolve function. It's highly configurable.", |
52473
55
1444