AssetsOverSizeLimitWarning.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Sean Larkin @thelarkinn
  4. */
  5. "use strict";
  6. const { formatSize } = require("../SizeFormatHelpers");
  7. const WebpackError = require("../WebpackError");
  8. /** @typedef {import("./SizeLimitsPlugin").AssetDetails} AssetDetails */
  9. class AssetsOverSizeLimitWarning extends WebpackError {
  10. /**
  11. * Creates an instance of AssetsOverSizeLimitWarning.
  12. * @param {AssetDetails[]} assetsOverSizeLimit the assets
  13. * @param {number} assetLimit the size limit
  14. */
  15. constructor(assetsOverSizeLimit, assetLimit) {
  16. const assetLists = assetsOverSizeLimit
  17. .map((asset) => `\n ${asset.name} (${formatSize(asset.size)})`)
  18. .join("");
  19. super(`asset size limit: The following asset(s) exceed the recommended size limit (${formatSize(
  20. assetLimit
  21. )}).
  22. This can impact web performance.
  23. Assets: ${assetLists}`);
  24. /** @type {string} */
  25. this.name = "AssetsOverSizeLimitWarning";
  26. /** @type {AssetDetails[]} */
  27. this.assets = assetsOverSizeLimit;
  28. }
  29. }
  30. /** @type {typeof AssetsOverSizeLimitWarning} */
  31. module.exports = AssetsOverSizeLimitWarning;