UNPKG

json-q

Version:

Retrieves values from JSON objects (and JavaScript objects) by css-selector-like query (includes attribute filters and array flattening).

44 lines (42 loc) 1.45 kB
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ function ModuleAsDirectoryPlugin(moduleType) { this.moduleType = moduleType; } module.exports = ModuleAsDirectoryPlugin; ModuleAsDirectoryPlugin.prototype.apply = function(resolver) { resolver.plugin("module-" + this.moduleType, function(request, callback) { var fs = this.fileSystem; var i = request.request.indexOf("/"), j = request.request.indexOf("\\"); var p = i < 0 ? j : j < 0 ? i : i < j ? i : j; var moduleName, remainingRequest; if(p < 0) { moduleName = request.request; remainingRequest = ""; } else { moduleName = request.request.substr(0, p); remainingRequest = request.request.substr(p+1); } var modulePath = this.join(request.path, moduleName); fs.stat(modulePath, function(err, stat) { if(err || !stat) { if(callback.missing) callback.missing.push(modulePath); if(callback.log) callback.log(modulePath + " doesn't exist (module as directory)"); return callback(); } if(stat.isDirectory()) { return this.doResolve(request.directory ? "directory" : ["file", "directory"], { path: modulePath, request: remainingRequest, query: request.query }, callback, true); } if(callback.log) callback.log(modulePath + " is not a directory (module as directory)"); return callback(); }.bind(this)); }); };