diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
commit | bbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch) | |
tree | c58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/webpack/lib/ContextReplacementPlugin.js | |
parent | 003fb34971cf63466184351b4db5f7c67df4f444 (diff) |
update packages
Diffstat (limited to 'node_modules/webpack/lib/ContextReplacementPlugin.js')
-rw-r--r-- | node_modules/webpack/lib/ContextReplacementPlugin.js | 244 |
1 files changed, 133 insertions, 111 deletions
diff --git a/node_modules/webpack/lib/ContextReplacementPlugin.js b/node_modules/webpack/lib/ContextReplacementPlugin.js index 29fede826..5523c8ab6 100644 --- a/node_modules/webpack/lib/ContextReplacementPlugin.js +++ b/node_modules/webpack/lib/ContextReplacementPlugin.js @@ -1,111 +1,133 @@ -/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-
-const path = require("path");
-const ContextElementDependency = require("./dependencies/ContextElementDependency");
-
-class ContextReplacementPlugin {
- constructor(resourceRegExp, newContentResource, newContentRecursive, newContentRegExp) {
- this.resourceRegExp = resourceRegExp;
-
- if(typeof newContentResource === "function") {
- this.newContentCallback = newContentResource;
- } else if(typeof newContentResource === "string" && typeof newContentRecursive === "object") {
- this.newContentResource = newContentResource;
- this.newContentCreateContextMap = (fs, callback) => {
- callback(null, newContentRecursive);
- };
- } else if(typeof newContentResource === "string" && typeof newContentRecursive === "function") {
- this.newContentResource = newContentResource;
- this.newContentCreateContextMap = newContentRecursive;
- } else {
- if(typeof newContentResource !== "string") {
- newContentRegExp = newContentRecursive;
- newContentRecursive = newContentResource;
- newContentResource = undefined;
- }
- if(typeof newContentRecursive !== "boolean") {
- newContentRegExp = newContentRecursive;
- newContentRecursive = undefined;
- }
- this.newContentResource = newContentResource;
- this.newContentRecursive = newContentRecursive;
- this.newContentRegExp = newContentRegExp;
- }
- }
-
- apply(compiler) {
- const resourceRegExp = this.resourceRegExp;
- const newContentCallback = this.newContentCallback;
- const newContentResource = this.newContentResource;
- const newContentRecursive = this.newContentRecursive;
- const newContentRegExp = this.newContentRegExp;
- const newContentCreateContextMap = this.newContentCreateContextMap;
-
- compiler.plugin("context-module-factory", (cmf) => {
- cmf.plugin("before-resolve", (result, callback) => {
- if(!result) return callback();
- if(resourceRegExp.test(result.request)) {
- if(typeof newContentResource !== "undefined")
- result.request = newContentResource;
- if(typeof newContentRecursive !== "undefined")
- result.recursive = newContentRecursive;
- if(typeof newContentRegExp !== "undefined")
- result.regExp = newContentRegExp;
- if(typeof newContentCallback === "function") {
- newContentCallback(result);
- } else {
- result.dependencies.forEach((d) => {
- if(d.critical)
- d.critical = false;
- });
- }
- }
- return callback(null, result);
- });
- cmf.plugin("after-resolve", (result, callback) => {
- if(!result) return callback();
- if(resourceRegExp.test(result.resource)) {
- if(typeof newContentResource !== "undefined")
- result.resource = path.resolve(result.resource, newContentResource);
- if(typeof newContentRecursive !== "undefined")
- result.recursive = newContentRecursive;
- if(typeof newContentRegExp !== "undefined")
- result.regExp = newContentRegExp;
- if(typeof newContentCreateContextMap === "function")
- result.resolveDependencies = createResolveDependenciesFromContextMap(newContentCreateContextMap);
- if(typeof newContentCallback === "function") {
- const origResource = result.resource;
- newContentCallback(result);
- if(result.resource !== origResource) {
- result.resource = path.resolve(origResource, result.resource);
- }
- } else {
- result.dependencies.forEach((d) => {
- if(d.critical)
- d.critical = false;
- });
- }
- }
- return callback(null, result);
- });
- });
- }
-}
-
-const createResolveDependenciesFromContextMap = (createContextMap) => {
- return function resolveDependenciesFromContextMap(fs, resource, recursive, regExp, callback) {
- createContextMap(fs, (err, map) => {
- if(err) return callback(err);
- const dependencies = Object.keys(map).map((key) => {
- return new ContextElementDependency(map[key], key);
- });
- callback(null, dependencies);
- });
- };
-};
-
-module.exports = ContextReplacementPlugin;
+/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const path = require("path"); +const ContextElementDependency = require("./dependencies/ContextElementDependency"); + +class ContextReplacementPlugin { + constructor( + resourceRegExp, + newContentResource, + newContentRecursive, + newContentRegExp + ) { + this.resourceRegExp = resourceRegExp; + + if (typeof newContentResource === "function") { + this.newContentCallback = newContentResource; + } else if ( + typeof newContentResource === "string" && + typeof newContentRecursive === "object" + ) { + this.newContentResource = newContentResource; + this.newContentCreateContextMap = (fs, callback) => { + callback(null, newContentRecursive); + }; + } else if ( + typeof newContentResource === "string" && + typeof newContentRecursive === "function" + ) { + this.newContentResource = newContentResource; + this.newContentCreateContextMap = newContentRecursive; + } else { + if (typeof newContentResource !== "string") { + newContentRegExp = newContentRecursive; + newContentRecursive = newContentResource; + newContentResource = undefined; + } + if (typeof newContentRecursive !== "boolean") { + newContentRegExp = newContentRecursive; + newContentRecursive = undefined; + } + this.newContentResource = newContentResource; + this.newContentRecursive = newContentRecursive; + this.newContentRegExp = newContentRegExp; + } + } + + apply(compiler) { + const resourceRegExp = this.resourceRegExp; + const newContentCallback = this.newContentCallback; + const newContentResource = this.newContentResource; + const newContentRecursive = this.newContentRecursive; + const newContentRegExp = this.newContentRegExp; + const newContentCreateContextMap = this.newContentCreateContextMap; + + compiler.hooks.contextModuleFactory.tap("ContextReplacementPlugin", cmf => { + cmf.hooks.beforeResolve.tap("ContextReplacementPlugin", result => { + if (!result) return; + if (resourceRegExp.test(result.request)) { + if (newContentResource !== undefined) { + result.request = newContentResource; + } + if (newContentRecursive !== undefined) { + result.recursive = newContentRecursive; + } + if (newContentRegExp !== undefined) { + result.regExp = newContentRegExp; + } + if (typeof newContentCallback === "function") { + newContentCallback(result); + } else { + for (const d of result.dependencies) { + if (d.critical) d.critical = false; + } + } + } + return result; + }); + cmf.hooks.afterResolve.tap("ContextReplacementPlugin", result => { + if (!result) return; + if (resourceRegExp.test(result.resource)) { + if (newContentResource !== undefined) { + result.resource = path.resolve(result.resource, newContentResource); + } + if (newContentRecursive !== undefined) { + result.recursive = newContentRecursive; + } + if (newContentRegExp !== undefined) { + result.regExp = newContentRegExp; + } + if (typeof newContentCreateContextMap === "function") { + result.resolveDependencies = createResolveDependenciesFromContextMap( + newContentCreateContextMap + ); + } + if (typeof newContentCallback === "function") { + const origResource = result.resource; + newContentCallback(result); + if (result.resource !== origResource) { + result.resource = path.resolve(origResource, result.resource); + } + } else { + for (const d of result.dependencies) { + if (d.critical) d.critical = false; + } + } + } + return result; + }); + }); + } +} + +const createResolveDependenciesFromContextMap = createContextMap => { + const resolveDependenciesFromContextMap = (fs, options, callback) => { + createContextMap(fs, (err, map) => { + if (err) return callback(err); + const dependencies = Object.keys(map).map(key => { + return new ContextElementDependency( + map[key] + options.resourceQuery, + key + ); + }); + callback(null, dependencies); + }); + }; + return resolveDependenciesFromContextMap; +}; + +module.exports = ContextReplacementPlugin; |