FallbackDependency.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. "use strict";
  6. const Dependency = require("../Dependency");
  7. const makeSerializable = require("../util/makeSerializable");
  8. /** @typedef {import("./RemoteModule").ExternalRequests} ExternalRequests */
  9. /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
  10. /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
  11. class FallbackDependency extends Dependency {
  12. /**
  13. * @param {ExternalRequests} requests requests
  14. */
  15. constructor(requests) {
  16. super();
  17. /** @type {ExternalRequests} */
  18. this.requests = requests;
  19. }
  20. /**
  21. * @returns {string | null} an identifier to merge equal requests
  22. */
  23. getResourceIdentifier() {
  24. return `fallback ${this.requests.join(" ")}`;
  25. }
  26. get type() {
  27. return "fallback";
  28. }
  29. get category() {
  30. return "esm";
  31. }
  32. /**
  33. * @param {ObjectSerializerContext} context context
  34. */
  35. serialize(context) {
  36. const { write } = context;
  37. write(this.requests);
  38. super.serialize(context);
  39. }
  40. /**
  41. * @param {ObjectDeserializerContext} context context
  42. * @returns {FallbackDependency} deserialize fallback dependency
  43. */
  44. static deserialize(context) {
  45. const { read } = context;
  46. const obj = new FallbackDependency(read());
  47. obj.deserialize(context);
  48. return obj;
  49. }
  50. }
  51. makeSerializable(
  52. FallbackDependency,
  53. "webpack/lib/container/FallbackDependency"
  54. );
  55. module.exports = FallbackDependency;