/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const Generator = require("../Generator"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../NormalModule")} NormalModule */ const TYPES = new Set(["webassembly"]); /** * @typedef {object} AsyncWebAssemblyGeneratorOptions * @property {boolean} [mangleImports] mangle imports */ class AsyncWebAssemblyGenerator extends Generator { /** * @param {AsyncWebAssemblyGeneratorOptions} options options */ constructor(options) { super(); this.options = options; } /** * @param {NormalModule} module fresh module * @returns {Set} available types (do not mutate) */ getTypes(module) { return TYPES; } /** * @param {NormalModule} module the module * @param {string=} type source type * @returns {number} estimate size of the module */ getSize(module, type) { const originalSource = module.originalSource(); if (!originalSource) { return 0; } return originalSource.size(); } /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate * @returns {Source} generated code */ generate(module, generateContext) { return /** @type {Source} */ (module.originalSource()); } } module.exports = AsyncWebAssemblyGenerator;