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/ResolverFactory.js | 180 ++++++++++++--------- 1 file changed, 104 insertions(+), 76 deletions(-) (limited to 'node_modules/enhanced-resolve/lib/ResolverFactory.js') diff --git a/node_modules/enhanced-resolve/lib/ResolverFactory.js b/node_modules/enhanced-resolve/lib/ResolverFactory.js index cd167aaf7..4e935a72d 100644 --- a/node_modules/enhanced-resolve/lib/ResolverFactory.js +++ b/node_modules/enhanced-resolve/lib/ResolverFactory.js @@ -2,99 +2,104 @@ MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ -var Resolver = require("./Resolver"); - -var SyncAsyncFileSystemDecorator = require("./SyncAsyncFileSystemDecorator"); - -var ParsePlugin = require("./ParsePlugin"); -var DescriptionFilePlugin = require("./DescriptionFilePlugin"); -var NextPlugin = require("./NextPlugin"); -var TryNextPlugin = require("./TryNextPlugin"); -var ModuleKindPlugin = require("./ModuleKindPlugin"); -var FileKindPlugin = require("./FileKindPlugin"); -var JoinRequestPlugin = require("./JoinRequestPlugin"); -var ModulesInHierachicDirectoriesPlugin = require("./ModulesInHierachicDirectoriesPlugin"); -var ModulesInRootPlugin = require("./ModulesInRootPlugin"); -var AliasPlugin = require("./AliasPlugin"); -var AliasFieldPlugin = require("./AliasFieldPlugin"); -var ConcordExtensionsPlugin = require("./ConcordExtensionsPlugin"); -var ConcordMainPlugin = require("./ConcordMainPlugin"); -var ConcordModulesPlugin = require("./ConcordModulesPlugin"); -var DirectoryExistsPlugin = require("./DirectoryExistsPlugin"); -var FileExistsPlugin = require("./FileExistsPlugin"); -var SymlinkPlugin = require("./SymlinkPlugin"); -var MainFieldPlugin = require("./MainFieldPlugin"); -var UseFilePlugin = require("./UseFilePlugin"); -var AppendPlugin = require("./AppendPlugin"); -var ResultPlugin = require("./ResultPlugin"); -var ModuleAppendPlugin = require("./ModuleAppendPlugin"); -var UnsafeCachePlugin = require("./UnsafeCachePlugin"); +"use strict"; + +const Resolver = require("./Resolver"); + +const SyncAsyncFileSystemDecorator = require("./SyncAsyncFileSystemDecorator"); + +const ParsePlugin = require("./ParsePlugin"); +const DescriptionFilePlugin = require("./DescriptionFilePlugin"); +const NextPlugin = require("./NextPlugin"); +const TryNextPlugin = require("./TryNextPlugin"); +const ModuleKindPlugin = require("./ModuleKindPlugin"); +const FileKindPlugin = require("./FileKindPlugin"); +const JoinRequestPlugin = require("./JoinRequestPlugin"); +const ModulesInHierachicDirectoriesPlugin = require("./ModulesInHierachicDirectoriesPlugin"); +const ModulesInRootPlugin = require("./ModulesInRootPlugin"); +const AliasPlugin = require("./AliasPlugin"); +const AliasFieldPlugin = require("./AliasFieldPlugin"); +const ConcordExtensionsPlugin = require("./ConcordExtensionsPlugin"); +const ConcordMainPlugin = require("./ConcordMainPlugin"); +const ConcordModulesPlugin = require("./ConcordModulesPlugin"); +const DirectoryExistsPlugin = require("./DirectoryExistsPlugin"); +const FileExistsPlugin = require("./FileExistsPlugin"); +const SymlinkPlugin = require("./SymlinkPlugin"); +const MainFieldPlugin = require("./MainFieldPlugin"); +const UseFilePlugin = require("./UseFilePlugin"); +const AppendPlugin = require("./AppendPlugin"); +const ResultPlugin = require("./ResultPlugin"); +const ModuleAppendPlugin = require("./ModuleAppendPlugin"); +const UnsafeCachePlugin = require("./UnsafeCachePlugin"); exports.createResolver = function(options) { //// OPTIONS //// // A list of directories to resolve modules from, can be absolute path or folder name - var modules = options.modules || ["node_modules"]; + let modules = options.modules || ["node_modules"]; // A list of description files to read from - var descriptionFiles = options.descriptionFiles || ["package.json"]; + const descriptionFiles = options.descriptionFiles || ["package.json"]; // A list of additional resolve plugins which should be applied // The slice is there to create a copy, because otherwise pushing into plugins // changes the original options.plugins array, causing duplicate plugins - var plugins = (options.plugins && options.plugins.slice()) || []; + const plugins = (options.plugins && options.plugins.slice()) || []; // A list of main fields in description files - var mainFields = options.mainFields || ["main"]; + let mainFields = options.mainFields || ["main"]; // A list of alias fields in description files - var aliasFields = options.aliasFields || []; + const aliasFields = options.aliasFields || []; // A list of main files in directories - var mainFiles = options.mainFiles || ["index"]; + const mainFiles = options.mainFiles || ["index"]; // A list of extensions which should be tried for files - var extensions = options.extensions || [".js", ".json", ".node"]; + let extensions = options.extensions || [".js", ".json", ".node"]; // Enforce that a extension from extensions must be used - var enforceExtension = options.enforceExtension || false; + const enforceExtension = options.enforceExtension || false; // A list of module extensions which should be tried for modules - var moduleExtensions = options.moduleExtensions || []; + let moduleExtensions = options.moduleExtensions || []; // Enforce that a extension from moduleExtensions must be used - var enforceModuleExtension = options.enforceModuleExtension || false; + const enforceModuleExtension = options.enforceModuleExtension || false; // A list of module alias configurations or an object which maps key to value - var alias = options.alias || []; + let alias = options.alias || []; // Resolve symlinks to their symlinked location - var symlinks = typeof options.symlinks !== "undefined" ? options.symlinks : true; + const symlinks = typeof options.symlinks !== "undefined" ? options.symlinks : true; // Resolve to a context instead of a file - var resolveToContext = options.resolveToContext || false; + const resolveToContext = options.resolveToContext || false; // Use this cache object to unsafely cache the successful requests - var unsafeCache = options.unsafeCache || false; + let 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; + const cacheWithContext = typeof options.cacheWithContext !== "undefined" ? options.cacheWithContext : true; + + // Enable concord description file instructions + const enableConcord = options.concord || false; // 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() { + const cachePredicate = options.cachePredicate || function() { return true; }; // The file system which should be used - var fileSystem = options.fileSystem; + const fileSystem = options.fileSystem; - // Use only the sync variants of the file system calls - var useSyncFileSystemCalls = options.useSyncFileSystemCalls; + // Use only the sync constiants of the file system calls + const useSyncFileSystemCalls = options.useSyncFileSystemCalls; // A prepared Resolver to which the plugins are attached - var resolver = options.resolver; + let resolver = options.resolver; //// options processing //// @@ -105,12 +110,12 @@ exports.createResolver = function(options) { extensions = [].concat(extensions); moduleExtensions = [].concat(moduleExtensions); - modules = mergeFilteredToArray([].concat(modules), function(item) { + modules = mergeFilteredToArray([].concat(modules), item => { return !isAbsolutePath(item); }); - mainFields = mainFields.map(function(item) { - if(typeof item === "string") { + mainFields = mainFields.map(item => { + if(typeof item === "string" || Array.isArray(item)) { item = { name: item, forceRelative: true @@ -120,9 +125,9 @@ exports.createResolver = function(options) { }); if(typeof alias === "object" && !Array.isArray(alias)) { - alias = Object.keys(alias).map(function(key) { - var onlyModule = false; - var obj = alias[key]; + alias = Object.keys(alias).map(key => { + let onlyModule = false; + let obj = alias[key]; if(/\$$/.test(key)) { onlyModule = true; key = key.substr(0, key.length - 1); @@ -146,6 +151,21 @@ exports.createResolver = function(options) { //// pipeline //// + resolver.ensureHook("resolve"); + resolver.ensureHook("parsedResolve"); + resolver.ensureHook("describedResolve"); + resolver.ensureHook("rawModule"); + resolver.ensureHook("module"); + resolver.ensureHook("relative"); + resolver.ensureHook("describedRelative"); + resolver.ensureHook("directory"); + resolver.ensureHook("existingDirectory"); + resolver.ensureHook("undescribedRawFile"); + resolver.ensureHook("rawFile"); + resolver.ensureHook("file"); + resolver.ensureHook("existingFile"); + resolver.ensureHook("resolved"); + // resolve if(unsafeCache) { plugins.push(new UnsafeCachePlugin("resolve", cachePredicate, unsafeCache, cacheWithContext, "new-resolve")); @@ -159,25 +179,26 @@ exports.createResolver = function(options) { plugins.push(new NextPlugin("after-parsed-resolve", "described-resolve")); // described-resolve - alias.forEach(function(item) { - plugins.push(new AliasPlugin("described-resolve", item, "resolve")); - }); - plugins.push(new ConcordModulesPlugin("described-resolve", {}, "resolve")); - aliasFields.forEach(function(item) { + if(alias.length > 0) + plugins.push(new AliasPlugin("described-resolve", alias, "resolve")); + if(enableConcord) { + plugins.push(new ConcordModulesPlugin("described-resolve", {}, "resolve")); + } + aliasFields.forEach(item => { plugins.push(new AliasFieldPlugin("described-resolve", item, "resolve")); }); plugins.push(new ModuleKindPlugin("after-described-resolve", "raw-module")); plugins.push(new JoinRequestPlugin("after-described-resolve", "relative")); // raw-module - moduleExtensions.forEach(function(item) { + moduleExtensions.forEach(item => { plugins.push(new ModuleAppendPlugin("raw-module", item, "module")); }); if(!enforceModuleExtension) plugins.push(new TryNextPlugin("raw-module", null, "module")); // module - modules.forEach(function(item) { + modules.forEach(item => { if(Array.isArray(item)) plugins.push(new ModulesInHierachicDirectoriesPlugin("module", item, "resolve")); else @@ -203,11 +224,13 @@ exports.createResolver = function(options) { } else { // existing-directory - plugins.push(new ConcordMainPlugin("existing-directory", {}, "resolve")); - mainFields.forEach(function(item) { + if(enableConcord) { + plugins.push(new ConcordMainPlugin("existing-directory", {}, "resolve")); + } + mainFields.forEach(item => { plugins.push(new MainFieldPlugin("existing-directory", item, "resolve")); }); - mainFiles.forEach(function(item) { + mainFiles.forEach(item => { plugins.push(new UseFilePlugin("existing-directory", item, "undescribed-raw-file")); }); @@ -216,19 +239,23 @@ exports.createResolver = function(options) { plugins.push(new NextPlugin("after-undescribed-raw-file", "raw-file")); // raw-file - if(!enforceExtension) + if(!enforceExtension) { plugins.push(new TryNextPlugin("raw-file", "no extension", "file")); - plugins.push(new ConcordExtensionsPlugin("raw-file", {}, "file")); - extensions.forEach(function(item) { + } + if(enableConcord) { + plugins.push(new ConcordExtensionsPlugin("raw-file", {}, "file")); + } + extensions.forEach(item => { plugins.push(new AppendPlugin("raw-file", item, "file")); }); // file - alias.forEach(function(item) { - plugins.push(new AliasPlugin("file", item, "resolve")); - }); - plugins.push(new ConcordModulesPlugin("file", {}, "resolve")); - aliasFields.forEach(function(item) { + if(alias.length > 0) + plugins.push(new AliasPlugin("file", alias, "resolve")); + if(enableConcord) { + plugins.push(new ConcordModulesPlugin("file", {}, "resolve")); + } + aliasFields.forEach(item => { plugins.push(new AliasFieldPlugin("file", item, "resolve")); }); if(symlinks) @@ -241,20 +268,21 @@ exports.createResolver = function(options) { } // resolved - plugins.push(new ResultPlugin("resolved")); + plugins.push(new ResultPlugin(resolver.hooks.resolved)); //// RESOLVER //// - plugins.forEach(function(plugin) { - resolver.apply(plugin); + plugins.forEach(plugin => { + plugin.apply(resolver); }); + return resolver; }; function mergeFilteredToArray(array, filter) { - return array.reduce(function(array, item) { + return array.reduce((array, item) => { if(filter(item)) { - var lastElement = array[array.length - 1]; + const lastElement = array[array.length - 1]; if(Array.isArray(lastElement)) { lastElement.push(item); } else { -- cgit v1.2.3