From bbff7403fbf46f9ad92240ac213df8d30ef31b64 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Sep 2018 02:56:13 +0200 Subject: update packages --- node_modules/webpack/lib/APIPlugin.js | 129 ++++++++++++++++++++++------------ 1 file changed, 84 insertions(+), 45 deletions(-) (limited to 'node_modules/webpack/lib/APIPlugin.js') diff --git a/node_modules/webpack/lib/APIPlugin.js b/node_modules/webpack/lib/APIPlugin.js index 19a5be424..6cd80646d 100644 --- a/node_modules/webpack/lib/APIPlugin.js +++ b/node_modules/webpack/lib/APIPlugin.js @@ -1,45 +1,84 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -"use strict"; - -const ConstDependency = require("./dependencies/ConstDependency"); -const ParserHelpers = require("./ParserHelpers"); - -const NullFactory = require("./NullFactory"); - -const REPLACEMENTS = { - __webpack_require__: "__webpack_require__", // eslint-disable-line camelcase - __webpack_public_path__: "__webpack_require__.p", // eslint-disable-line camelcase - __webpack_modules__: "__webpack_require__.m", // eslint-disable-line camelcase - __webpack_chunk_load__: "__webpack_require__.e", // eslint-disable-line camelcase - __non_webpack_require__: "require", // eslint-disable-line camelcase - __webpack_nonce__: "__webpack_require__.nc", // eslint-disable-line camelcase - "require.onError": "__webpack_require__.oe" // eslint-disable-line camelcase -}; -const REPLACEMENT_TYPES = { - __webpack_public_path__: "string", // eslint-disable-line camelcase - __webpack_require__: "function", // eslint-disable-line camelcase - __webpack_modules__: "object", // eslint-disable-line camelcase - __webpack_chunk_load__: "function", // eslint-disable-line camelcase - __webpack_nonce__: "string" // eslint-disable-line camelcase -}; - -class APIPlugin { - apply(compiler) { - compiler.plugin("compilation", (compilation, params) => { - compilation.dependencyFactories.set(ConstDependency, new NullFactory()); - compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template()); - - params.normalModuleFactory.plugin("parser", parser => { - Object.keys(REPLACEMENTS).forEach(key => { - parser.plugin(`expression ${key}`, ParserHelpers.toConstantDependency(REPLACEMENTS[key])); - parser.plugin(`evaluate typeof ${key}`, ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key])); - }); - }); - }); - } -} - -module.exports = APIPlugin; +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const ConstDependency = require("./dependencies/ConstDependency"); +const ParserHelpers = require("./ParserHelpers"); + +const NullFactory = require("./NullFactory"); + +/* eslint-disable camelcase */ +const REPLACEMENTS = { + __webpack_require__: "__webpack_require__", + __webpack_public_path__: "__webpack_require__.p", + __webpack_modules__: "__webpack_require__.m", + __webpack_chunk_load__: "__webpack_require__.e", + __non_webpack_require__: "require", + __webpack_nonce__: "__webpack_require__.nc", + "require.onError": "__webpack_require__.oe" +}; +const NO_WEBPACK_REQUIRE = { + __non_webpack_require__: true +}; +const REPLACEMENT_TYPES = { + __webpack_public_path__: "string", + __webpack_require__: "function", + __webpack_modules__: "object", + __webpack_chunk_load__: "function", + __webpack_nonce__: "string" +}; +/* eslint-enable camelcase */ + +class APIPlugin { + apply(compiler) { + compiler.hooks.compilation.tap( + "APIPlugin", + (compilation, { normalModuleFactory }) => { + compilation.dependencyFactories.set(ConstDependency, new NullFactory()); + compilation.dependencyTemplates.set( + ConstDependency, + new ConstDependency.Template() + ); + + const handler = parser => { + Object.keys(REPLACEMENTS).forEach(key => { + parser.hooks.expression + .for(key) + .tap( + "APIPlugin", + NO_WEBPACK_REQUIRE[key] + ? ParserHelpers.toConstantDependency( + parser, + REPLACEMENTS[key] + ) + : ParserHelpers.toConstantDependencyWithWebpackRequire( + parser, + REPLACEMENTS[key] + ) + ); + parser.hooks.evaluateTypeof + .for(key) + .tap( + "APIPlugin", + ParserHelpers.evaluateToString(REPLACEMENT_TYPES[key]) + ); + }); + }; + + normalModuleFactory.hooks.parser + .for("javascript/auto") + .tap("APIPlugin", handler); + normalModuleFactory.hooks.parser + .for("javascript/dynamic") + .tap("APIPlugin", handler); + normalModuleFactory.hooks.parser + .for("javascript/esm") + .tap("APIPlugin", handler); + } + ); + } +} + +module.exports = APIPlugin; -- cgit v1.2.3