| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- */
- "use strict";
- const NormalModule = require("../NormalModule");
- const makeSerializable = require("../util/makeSerializable");
- /** @import Module from "../Module" */
- /** @import { NormalModuleCreateData } from "../NormalModule" */
- /** @import { ImportPhaseName } from "../dependencies/ImportPhase" */
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ImportPhaseName | undefined]>} ObjectDeserializerContext */
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ImportPhaseName | undefined]>} ObjectSerializerContext */
- /**
- * Module class for `webassembly/async` modules. Wasm-specific properties should live here instead of `NormalModule`.
- */
- class AsyncWasmModule extends NormalModule {
- /**
- * @param {NormalModuleCreateData & { phase: ImportPhaseName | undefined }} options options object
- */
- constructor(options) {
- super(options);
- /** @type {ImportPhaseName | undefined} */
- this.phase = options.phase;
- }
- /**
- * Returns the unique identifier used to reference this module.
- * @returns {string} a unique identifier of the module
- */
- identifier() {
- let str = super.identifier();
- if (this.phase) {
- str = `${str}|${this.phase}`;
- }
- return str;
- }
- /**
- * Assuming this module is in the cache. Update the (cached) module with
- * the fresh module from the factory. Usually updates internal references
- * and properties.
- * @param {Module} module fresh module
- * @returns {void}
- */
- updateCacheModule(module) {
- super.updateCacheModule(module);
- const m = /** @type {AsyncWasmModule} */ (module);
- this.phase = m.phase;
- }
- /**
- * Serializes this instance into the provided serializer context.
- * @param {ObjectSerializerContext} context context
- */
- serialize(context) {
- context.write(this.phase);
- super.serialize(context);
- }
- /**
- * Restores this instance from the provided deserializer context.
- * @param {ObjectDeserializerContext} context context
- */
- deserialize(context) {
- this.phase = context.read();
- super.deserialize(context.rest);
- }
- }
- makeSerializable(AsyncWasmModule, "webpack/lib/wasm-async/AsyncWasmModule");
- module.exports = AsyncWasmModule;
|