aboutsummaryrefslogtreecommitdiff
path: root/node_modules/enhanced-resolve/lib/MainFieldPlugin.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
commitbbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch)
treec58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/enhanced-resolve/lib/MainFieldPlugin.js
parent003fb34971cf63466184351b4db5f7c67df4f444 (diff)
update packages
Diffstat (limited to 'node_modules/enhanced-resolve/lib/MainFieldPlugin.js')
-rw-r--r--node_modules/enhanced-resolve/lib/MainFieldPlugin.js100
1 files changed, 52 insertions, 48 deletions
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);
+ });
+ }
+};