From bbff7403fbf46f9ad92240ac213df8d30ef31b64 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Sep 2018 02:56:13 +0200 Subject: update packages --- .../enhanced-resolve/lib/MainFieldPlugin.js | 100 +++++++++++---------- 1 file changed, 52 insertions(+), 48 deletions(-) (limited to 'node_modules/enhanced-resolve/lib/MainFieldPlugin.js') diff --git a/node_modules/enhanced-resolve/lib/MainFieldPlugin.js b/node_modules/enhanced-resolve/lib/MainFieldPlugin.js index 45ecd4b23..3bcd36ce5 100644 --- a/node_modules/enhanced-resolve/lib/MainFieldPlugin.js +++ b/node_modules/enhanced-resolve/lib/MainFieldPlugin.js @@ -1,48 +1,52 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -var path = require("path"); - -function MainFieldPlugin(source, options, target) { - this.source = source; - this.options = options; - this.target = target; -} -module.exports = MainFieldPlugin; - -MainFieldPlugin.prototype.apply = function(resolver) { - var target = this.target; - var options = this.options; - resolver.plugin(this.source, function mainField(request, callback) { - if(request.path !== request.descriptionFileRoot) return callback(); - var content = request.descriptionFileData; - var filename = path.basename(request.descriptionFilePath); - var mainModule; - var field = options.name; - if(Array.isArray(field)) { - var current = content; - for(var j = 0; j < field.length; j++) { - if(current === null || typeof current !== "object") { - current = null; - break; - } - current = current[field[j]]; - } - if(typeof current === "string") { - mainModule = current; - } - } else { - if(typeof content[field] === "string") { - mainModule = content[field]; - } - } - if(!mainModule) return callback(); - if(options.forceRelative && !/^\.\.?\//.test(mainModule)) - mainModule = "./" + mainModule; - var obj = Object.assign({}, request, { - request: mainModule - }); - return resolver.doResolve(target, obj, "use " + mainModule + " from " + options.name + " in " + filename, callback); - }); -}; +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const path = require("path"); + +module.exports = class MainFieldPlugin { + constructor(source, options, target) { + this.source = source; + this.options = options; + this.target = target; + } + + apply(resolver) { + const target = resolver.ensureHook(this.target); + resolver.getHook(this.source).tapAsync("MainFieldPlugin", (request, resolveContext, callback) => { + if(request.path !== request.descriptionFileRoot) return callback(); + if(request.alreadyTriedMainField === request.descriptionFilePath) return callback(); + const content = request.descriptionFileData; + const filename = path.basename(request.descriptionFilePath); + let mainModule; + const field = this.options.name; + if(Array.isArray(field)) { + let current = content; + for(let j = 0; j < field.length; j++) { + if(current === null || typeof current !== "object") { + current = null; + break; + } + current = current[field[j]]; + } + if(typeof current === "string") { + mainModule = current; + } + } else { + if(typeof content[field] === "string") { + mainModule = content[field]; + } + } + if(!mainModule) return callback(); + if(this.options.forceRelative && !/^\.\.?\//.test(mainModule)) + mainModule = "./" + mainModule; + const obj = Object.assign({}, request, { + request: mainModule, + alreadyTriedMainField: request.descriptionFilePath + }); + return resolver.doResolve(target, obj, "use " + mainModule + " from " + this.options.name + " in " + filename, resolveContext, callback); + }); + } +}; -- cgit v1.2.3