diff options
Diffstat (limited to 'node_modules/webpack/lib/runtime/MakeNamespaceObjectRuntimeModule.js')
| -rw-r--r-- | node_modules/webpack/lib/runtime/MakeNamespaceObjectRuntimeModule.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/runtime/MakeNamespaceObjectRuntimeModule.js b/node_modules/webpack/lib/runtime/MakeNamespaceObjectRuntimeModule.js new file mode 100644 index 00000000..7b43080d --- /dev/null +++ b/node_modules/webpack/lib/runtime/MakeNamespaceObjectRuntimeModule.js @@ -0,0 +1,39 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php +*/ + +"use strict"; + +const RuntimeGlobals = require("../RuntimeGlobals"); +const Template = require("../Template"); +const HelperRuntimeModule = require("./HelperRuntimeModule"); + +/** @typedef {import("../Compilation")} Compilation */ + +class MakeNamespaceObjectRuntimeModule extends HelperRuntimeModule { + constructor() { + super("make namespace object"); + } + + /** + * @returns {string | null} runtime code + */ + generate() { + const compilation = /** @type {Compilation} */ (this.compilation); + const { runtimeTemplate } = compilation; + const fn = RuntimeGlobals.makeNamespaceObject; + return Template.asString([ + "// define __esModule on exports", + `${fn} = ${runtimeTemplate.basicFunction("exports", [ + "if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {", + Template.indent([ + "Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });" + ]), + "}", + "Object.defineProperty(exports, '__esModule', { value: true });" + ])};` + ]); + } +} + +module.exports = MakeNamespaceObjectRuntimeModule; |
