webpack-bundle-analyzer
Version:
Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap
73 lines (67 loc) • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _BaseFolder = _interopRequireDefault(require("./BaseFolder.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/** @typedef {import("./Node").default} Node */
/** @typedef {import("./ConcatenatedModule").default} ConcatenatedModule */
/** @typedef {import("./BaseFolder").BaseFolderChartData} BaseFolderChartData */
/** @typedef {import("./Module").SizeType} SizeType */
/**
* @typedef {object} OwnContentFolderChartData
* @property {number | undefined} parsedSize parsed size
* @property {number | undefined} gzipSize gzip size
* @property {number | undefined} brotliSize brotli size
* @property {number | undefined} zstdSize zstd size
* @property {boolean} inaccurateSizes true when inaccurate sizes, otherwise false
*/
/** @typedef {BaseFolderChartData & OwnContentFolderChartData} ContentFolderChartData */
class ContentFolder extends _BaseFolder.default {
/**
* @param {string} name name
* @param {ConcatenatedModule} ownerModule owner module
* @param {Node=} parent v
*/
constructor(name, ownerModule, parent) {
super(name, parent);
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 {ContentFolderChartData} chart data
*/
toChartData() {
return {
...super.toChartData(),
parsedSize: this.parsedSize,
gzipSize: this.gzipSize,
brotliSize: this.brotliSize,
zstdSize: this.zstdSize,
inaccurateSizes: true
};
}
}
exports.default = ContentFolder;