UNPKG

rollup-plugin-bundle-stats

Version:

In-depth bundle analyzer for rollup(bundle size, assets, modules, packages)

39 lines (37 loc) 1.6 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.bundleStats = void 0; const tslib_1 = require("tslib"); const path = tslib_1.__importStar(require("path")); const fs = tslib_1.__importStar(require("fs/promises")); // @ts-ignore const transform_1 = require("rollup-plugin-webpack-stats/transform"); const cli_utils_1 = require("@bundle-stats/cli-utils"); const NAME = 'bundleStats'; function resolveAbsoluteOutputPath(outputPath) { if (!outputPath) { return process.cwd(); } if (path.isAbsolute(outputPath)) { return outputPath; } return path.join(process.cwd(), outputPath); } const bundleStats = (options = {}) => ({ name: NAME, async generateBundle(outputOptions, bundle) { const outputPath = resolveAbsoluteOutputPath(outputOptions.dir); const log = this.info || console.info; // eslint-disable-line no-console const source = (0, transform_1.bundleToWebpackStats)(bundle); const reports = await (0, cli_utils_1.generateReports)(source, options, { outputPath }); await Promise.all(Object.entries(reports).map(async ([relativeFilepath, report]) => { log(`Write bundle-stats ${report.type} to ${relativeFilepath}`); const baseDirectory = path.dirname(report.filepath); // Generate output parent directory in case is missing await fs.mkdir(baseDirectory, { recursive: true }); return fs.writeFile(report.filepath, report.source); })); }, }); exports.bundleStats = bundleStats; //# sourceMappingURL=index.js.map