summaryrefslogtreecommitdiffstats
path: root/node_modules/webpack/lib/dependencies/CommonJsPlugin.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/webpack/lib/dependencies/CommonJsPlugin.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/webpack/lib/dependencies/CommonJsPlugin.js')
-rw-r--r--node_modules/webpack/lib/dependencies/CommonJsPlugin.js158
1 files changed, 158 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/dependencies/CommonJsPlugin.js b/node_modules/webpack/lib/dependencies/CommonJsPlugin.js
new file mode 100644
index 0000000..6d441a8
--- /dev/null
+++ b/node_modules/webpack/lib/dependencies/CommonJsPlugin.js
@@ -0,0 +1,158 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+const ConstDependency = require("./ConstDependency");
+const CommonJsRequireDependency = require("./CommonJsRequireDependency");
+const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
+const RequireResolveDependency = require("./RequireResolveDependency");
+const RequireResolveContextDependency = require("./RequireResolveContextDependency");
+const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
+const RequireHeaderDependency = require("./RequireHeaderDependency");
+
+const NullFactory = require("../NullFactory");
+
+const RequireResolveDependencyParserPlugin = require("./RequireResolveDependencyParserPlugin");
+const CommonJsRequireDependencyParserPlugin = require("./CommonJsRequireDependencyParserPlugin");
+
+const ParserHelpers = require("../ParserHelpers");
+
+class CommonJsPlugin {
+ constructor(options) {
+ this.options = options;
+ }
+
+ apply(compiler) {
+ const options = this.options;
+ compiler.hooks.compilation.tap(
+ "CommonJsPlugin",
+ (compilation, { contextModuleFactory, normalModuleFactory }) => {
+ compilation.dependencyFactories.set(
+ CommonJsRequireDependency,
+ normalModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ CommonJsRequireDependency,
+ new CommonJsRequireDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ CommonJsRequireContextDependency,
+ contextModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ CommonJsRequireContextDependency,
+ new CommonJsRequireContextDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireResolveDependency,
+ normalModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ RequireResolveDependency,
+ new RequireResolveDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireResolveContextDependency,
+ contextModuleFactory
+ );
+ compilation.dependencyTemplates.set(
+ RequireResolveContextDependency,
+ new RequireResolveContextDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireResolveHeaderDependency,
+ new NullFactory()
+ );
+ compilation.dependencyTemplates.set(
+ RequireResolveHeaderDependency,
+ new RequireResolveHeaderDependency.Template()
+ );
+
+ compilation.dependencyFactories.set(
+ RequireHeaderDependency,
+ new NullFactory()
+ );
+ compilation.dependencyTemplates.set(
+ RequireHeaderDependency,
+ new RequireHeaderDependency.Template()
+ );
+
+ const handler = (parser, parserOptions) => {
+ if (parserOptions.commonjs !== undefined && !parserOptions.commonjs)
+ return;
+
+ const requireExpressions = [
+ "require",
+ "require.resolve",
+ "require.resolveWeak"
+ ];
+ for (let expression of requireExpressions) {
+ parser.hooks.typeof
+ .for(expression)
+ .tap(
+ "CommonJsPlugin",
+ ParserHelpers.toConstantDependency(
+ parser,
+ JSON.stringify("function")
+ )
+ );
+ parser.hooks.evaluateTypeof
+ .for(expression)
+ .tap(
+ "CommonJsPlugin",
+ ParserHelpers.evaluateToString("function")
+ );
+ parser.hooks.evaluateIdentifier
+ .for(expression)
+ .tap(
+ "CommonJsPlugin",
+ ParserHelpers.evaluateToIdentifier(expression, true)
+ );
+ }
+
+ parser.hooks.evaluateTypeof
+ .for("module")
+ .tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
+ parser.hooks.assign.for("require").tap("CommonJsPlugin", expr => {
+ // to not leak to global "require", we need to define a local require here.
+ const dep = new ConstDependency("var require;", 0);
+ dep.loc = expr.loc;
+ parser.state.current.addDependency(dep);
+ parser.scope.definitions.add("require");
+ return true;
+ });
+ parser.hooks.canRename
+ .for("require")
+ .tap("CommonJsPlugin", () => true);
+ parser.hooks.rename.for("require").tap("CommonJsPlugin", expr => {
+ // define the require variable. It's still undefined, but not "not defined".
+ const dep = new ConstDependency("var require;", 0);
+ dep.loc = expr.loc;
+ parser.state.current.addDependency(dep);
+ return false;
+ });
+ parser.hooks.typeof.for("module").tap("CommonJsPlugin", () => true);
+ parser.hooks.evaluateTypeof
+ .for("exports")
+ .tap("CommonJsPlugin", ParserHelpers.evaluateToString("object"));
+
+ new CommonJsRequireDependencyParserPlugin(options).apply(parser);
+ new RequireResolveDependencyParserPlugin(options).apply(parser);
+ };
+
+ normalModuleFactory.hooks.parser
+ .for("javascript/auto")
+ .tap("CommonJsPlugin", handler);
+ normalModuleFactory.hooks.parser
+ .for("javascript/dynamic")
+ .tap("CommonJsPlugin", handler);
+ }
+ );
+ }
+}
+module.exports = CommonJsPlugin;