From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- node_modules/webpack/lib/ProvidePlugin.js | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 node_modules/webpack/lib/ProvidePlugin.js (limited to 'node_modules/webpack/lib/ProvidePlugin.js') diff --git a/node_modules/webpack/lib/ProvidePlugin.js b/node_modules/webpack/lib/ProvidePlugin.js new file mode 100644 index 000000000..fff352a4b --- /dev/null +++ b/node_modules/webpack/lib/ProvidePlugin.js @@ -0,0 +1,55 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const ParserHelpers = require("./ParserHelpers"); +const ConstDependency = require("./dependencies/ConstDependency"); + +const NullFactory = require("./NullFactory"); + +class ProvidePlugin { + constructor(definitions) { + this.definitions = definitions; + } + + apply(compiler) { + const definitions = this.definitions; + compiler.plugin("compilation", (compilation, params) => { + compilation.dependencyFactories.set(ConstDependency, new NullFactory()); + compilation.dependencyTemplates.set(ConstDependency, new ConstDependency.Template()); + params.normalModuleFactory.plugin("parser", (parser, parserOptions) => { + Object.keys(definitions).forEach(name => { + var request = [].concat(definitions[name]); + var splittedName = name.split("."); + if(splittedName.length > 0) { + splittedName.slice(1).forEach((_, i) => { + const name = splittedName.slice(0, i + 1).join("."); + parser.plugin(`can-rename ${name}`, ParserHelpers.approve); + }); + } + parser.plugin(`expression ${name}`, function(expr) { + let nameIdentifier = name; + const scopedName = name.indexOf(".") >= 0; + let expression = `require(${JSON.stringify(request[0])})`; + if(scopedName) { + nameIdentifier = `__webpack_provided_${name.replace(/\./g, "_dot_")}`; + } + if(request.length > 1) { + expression += request.slice(1).map(r => `[${JSON.stringify(r)}]`).join(""); + } + if(!ParserHelpers.addParsedVariableToModule(this, nameIdentifier, expression)) { + return false; + } + if(scopedName) { + ParserHelpers.toConstantDependency(nameIdentifier).bind(this)(expr); + } + return true; + }); + }); + }); + }); + } +} +module.exports = ProvidePlugin; -- cgit v1.2.3