summaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/dependencies/DynamicExports.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/webpack/lib/dependencies/DynamicExports.js')
-rw-r--r--node_modules/webpack/lib/dependencies/DynamicExports.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/dependencies/DynamicExports.js b/node_modules/webpack/lib/dependencies/DynamicExports.js
new file mode 100644
index 00000000..a96fc9ab
--- /dev/null
+++ b/node_modules/webpack/lib/dependencies/DynamicExports.js
@@ -0,0 +1,73 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+/** @typedef {import("../Module").BuildMeta} BuildMeta */
+/** @typedef {import("../Parser").ParserState} ParserState */
+
+/** @type {WeakMap<ParserState, boolean>} */
+const parserStateExportsState = new WeakMap();
+
+/**
+ * @param {ParserState} parserState parser state
+ * @returns {void}
+ */
+exports.bailout = parserState => {
+ const value = parserStateExportsState.get(parserState);
+ parserStateExportsState.set(parserState, false);
+ if (value === true) {
+ const buildMeta = /** @type {BuildMeta} */ (parserState.module.buildMeta);
+ buildMeta.exportsType = undefined;
+ buildMeta.defaultObject = false;
+ }
+};
+
+/**
+ * @param {ParserState} parserState parser state
+ * @returns {void}
+ */
+exports.enable = parserState => {
+ const value = parserStateExportsState.get(parserState);
+ if (value === false) return;
+ parserStateExportsState.set(parserState, true);
+ if (value !== true) {
+ const buildMeta = /** @type {BuildMeta} */ (parserState.module.buildMeta);
+ buildMeta.exportsType = "default";
+ buildMeta.defaultObject = "redirect";
+ }
+};
+
+/**
+ * @param {ParserState} parserState parser state
+ * @returns {void}
+ */
+exports.setFlagged = parserState => {
+ const value = parserStateExportsState.get(parserState);
+ if (value !== true) return;
+ const buildMeta = /** @type {BuildMeta} */ (parserState.module.buildMeta);
+ if (buildMeta.exportsType === "dynamic") return;
+ buildMeta.exportsType = "flagged";
+};
+
+/**
+ * @param {ParserState} parserState parser state
+ * @returns {void}
+ */
+exports.setDynamic = parserState => {
+ const value = parserStateExportsState.get(parserState);
+ if (value !== true) return;
+ /** @type {BuildMeta} */
+ (parserState.module.buildMeta).exportsType = "dynamic";
+};
+
+/**
+ * @param {ParserState} parserState parser state
+ * @returns {boolean} true, when enabled
+ */
+exports.isEnabled = parserState => {
+ const value = parserStateExportsState.get(parserState);
+ return value === true;
+};