diff options
Diffstat (limited to 'node_modules/webpack/lib/runtime/GetMainFilenameRuntimeModule.js')
| -rw-r--r-- | node_modules/webpack/lib/runtime/GetMainFilenameRuntimeModule.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/runtime/GetMainFilenameRuntimeModule.js b/node_modules/webpack/lib/runtime/GetMainFilenameRuntimeModule.js new file mode 100644 index 00000000..0a9fdf50 --- /dev/null +++ b/node_modules/webpack/lib/runtime/GetMainFilenameRuntimeModule.js @@ -0,0 +1,47 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php +*/ + +"use strict"; + +const RuntimeGlobals = require("../RuntimeGlobals"); +const RuntimeModule = require("../RuntimeModule"); +const Template = require("../Template"); + +/** @typedef {import("../Chunk")} Chunk */ +/** @typedef {import("../Compilation")} Compilation */ + +class GetMainFilenameRuntimeModule extends RuntimeModule { + /** + * @param {string} name readable name + * @param {string} global global object binding + * @param {string} filename main file name + */ + constructor(name, global, filename) { + super(`get ${name} filename`); + this.global = global; + this.filename = filename; + } + + /** + * @returns {string | null} runtime code + */ + generate() { + const { global, filename } = this; + const compilation = /** @type {Compilation} */ (this.compilation); + const chunk = /** @type {Chunk} */ (this.chunk); + const { runtimeTemplate } = compilation; + const url = compilation.getPath(JSON.stringify(filename), { + hash: `" + ${RuntimeGlobals.getFullHash}() + "`, + hashWithLength: length => + `" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`, + chunk, + runtime: chunk.runtime + }); + return Template.asString([ + `${global} = ${runtimeTemplate.returningFunction(url)};` + ]); + } +} + +module.exports = GetMainFilenameRuntimeModule; |
