SizeOnlySource.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. "use strict";
  6. const Source = require("./Source");
  7. /** @typedef {import("./Source").HashLike} HashLike */
  8. /** @typedef {import("./Source").MapOptions} MapOptions */
  9. /** @typedef {import("./Source").RawSourceMap} RawSourceMap */
  10. /** @typedef {import("./Source").SourceValue} SourceValue */
  11. class SizeOnlySource extends Source {
  12. /**
  13. * @param {number} size size
  14. */
  15. constructor(size) {
  16. super();
  17. this._size = size;
  18. }
  19. _error() {
  20. return new Error(
  21. "Content and Map of this Source is not available (only size() is supported)",
  22. );
  23. }
  24. size() {
  25. return this._size;
  26. }
  27. /**
  28. * @returns {SourceValue} source
  29. */
  30. source() {
  31. throw this._error();
  32. }
  33. /**
  34. * @returns {Buffer} buffer
  35. */
  36. buffer() {
  37. throw this._error();
  38. }
  39. /**
  40. * @param {MapOptions=} options map options
  41. * @returns {RawSourceMap | null} map
  42. */
  43. // eslint-disable-next-line no-unused-vars
  44. map(options) {
  45. throw this._error();
  46. }
  47. /**
  48. * @param {HashLike} hash hash
  49. * @returns {void}
  50. */
  51. // eslint-disable-next-line no-unused-vars
  52. updateHash(hash) {
  53. throw this._error();
  54. }
  55. }
  56. module.exports = SizeOnlySource;