| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- */
- "use strict";
- const NormalModule = require("../NormalModule");
- const makeSerializable = require("../util/makeSerializable");
- /** @import { AssetInfo } from "../Compilation" */
- /**
- * @import {
- * NormalModuleBuildInfo,
- * NormalModuleCreateData
- * } from "../NormalModule"
- */
- /**
- * Defines the build info properties specific to asset modules.
- * @typedef {object} KnownAssetModuleBuildInfo
- * @property {boolean=} dataUrl whether the asset is inlined as a data url
- * @property {string=} filename
- * @property {AssetInfo=} assetInfo
- * @property {string=} fullContentHash
- */
- /** @typedef {NormalModuleBuildInfo & KnownAssetModuleBuildInfo} AssetModuleBuildInfo */
- /**
- * Module class for all `asset/*` modules. Asset-specific properties should live here instead of `NormalModule`.
- */
- class AssetModule extends NormalModule {
- /**
- * @param {NormalModuleCreateData} options options object
- * @param {boolean=} sideEffectFree whether asset modules are side-effect-free (`AssetModulesPluginOptions`)
- */
- constructor(options, sideEffectFree) {
- super(options);
- // Redeclared with the asset specific shape
- /** @type {AssetModuleBuildInfo | undefined} */
- this.buildInfo = undefined;
- if (sideEffectFree) {
- this.factoryMeta = { sideEffectFree: true };
- }
- }
- }
- makeSerializable(AssetModule, "webpack/lib/asset/AssetModule");
- module.exports = AssetModule;
|