summaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
committerlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
commitefbc2ffe6a1ee5ec38a4396305561d6515d0943e (patch)
tree2b4c94f18f2c792dfda813050755d5c0273fae22 /node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js
parent43acceb75957c880a5ba5a31aae221394a36d5f6 (diff)
node fixes, updates
Diffstat (limited to 'node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js')
-rw-r--r--node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js b/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js
new file mode 100644
index 00000000..0cd457ee
--- /dev/null
+++ b/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js
@@ -0,0 +1,63 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+const RuntimeGlobals = require("../RuntimeGlobals");
+
+/** @typedef {import("../Module")} Module */
+/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
+/** @typedef {"exports" | "module.exports" | "this" | "Object.defineProperty(exports)" | "Object.defineProperty(module.exports)" | "Object.defineProperty(this)"} CommonJSDependencyBaseKeywords */
+
+/**
+ * @param {CommonJSDependencyBaseKeywords} depBase commonjs dependency base
+ * @param {Module} module module
+ * @param {RuntimeRequirements} runtimeRequirements runtime requirements
+ * @returns {[string, string]} type and base
+ */
+module.exports.handleDependencyBase = (
+ depBase,
+ module,
+ runtimeRequirements
+) => {
+ let base;
+ let type;
+ switch (depBase) {
+ case "exports":
+ runtimeRequirements.add(RuntimeGlobals.exports);
+ base = module.exportsArgument;
+ type = "expression";
+ break;
+ case "module.exports":
+ runtimeRequirements.add(RuntimeGlobals.module);
+ base = `${module.moduleArgument}.exports`;
+ type = "expression";
+ break;
+ case "this":
+ runtimeRequirements.add(RuntimeGlobals.thisAsExports);
+ base = "this";
+ type = "expression";
+ break;
+ case "Object.defineProperty(exports)":
+ runtimeRequirements.add(RuntimeGlobals.exports);
+ base = module.exportsArgument;
+ type = "Object.defineProperty";
+ break;
+ case "Object.defineProperty(module.exports)":
+ runtimeRequirements.add(RuntimeGlobals.module);
+ base = `${module.moduleArgument}.exports`;
+ type = "Object.defineProperty";
+ break;
+ case "Object.defineProperty(this)":
+ runtimeRequirements.add(RuntimeGlobals.thisAsExports);
+ base = "this";
+ type = "Object.defineProperty";
+ break;
+ default:
+ throw new Error(`Unsupported base ${depBase}`);
+ }
+
+ return [type, base];
+};