UNPKG

webpack-bundle-analyzer

Version:

Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap

69 lines (63 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _Module = _interopRequireDefault(require("./Module.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** @typedef {import("webpack").StatsModule} StatsModule */ /** @typedef {import("./Node").default} NodeType */ /** @typedef {import("./Module").ModuleChartData} ModuleChartData */ /** @typedef {import("./Module").ModuleOptions} ModuleOptions */ /** @typedef {import("./Module").SizeType} SizeType */ /** @typedef {import("./ConcatenatedModule").default} ConcatenatedModule */ /** * @typedef {object} OwnContentModuleChartData * @property {boolean} inaccurateSizes true when inaccurate sizes, otherwise false */ /** @typedef {ModuleChartData & OwnContentModuleChartData} ContentModuleChartData */ class ContentModule extends _Module.default { /** * @param {string} name name * @param {StatsModule} data data * @param {ConcatenatedModule} ownerModule owner module * @param {ModuleOptions} opts options */ constructor(name, data, ownerModule, opts) { super(name, data, undefined, opts); /** @type {ConcatenatedModule} */ this.ownerModule = ownerModule; } get parsedSize() { return this.getSize("parsedSize"); } get gzipSize() { return this.getSize("gzipSize"); } get brotliSize() { return this.getSize("brotliSize"); } get zstdSize() { return this.getSize("zstdSize"); } /** * @param {SizeType} sizeType size type * @returns {number | undefined} size */ getSize(sizeType) { const ownerModuleSize = this.ownerModule[sizeType]; if (ownerModuleSize !== undefined) { return Math.floor(this.size / this.ownerModule.size * ownerModuleSize); } } /** * @returns {ContentModuleChartData} chart data */ toChartData() { return { ...super.toChartData(), inaccurateSizes: true }; } } exports.default = ContentModule;