LocalModule.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. "use strict";
  6. const makeSerializable = require("../util/makeSerializable");
  7. /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
  8. /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
  9. class LocalModule {
  10. /**
  11. * Creates an instance of LocalModule.
  12. * @param {string} name name
  13. * @param {number} idx index
  14. */
  15. constructor(name, idx) {
  16. this.name = name;
  17. this.idx = idx;
  18. this.used = false;
  19. }
  20. flagUsed() {
  21. this.used = true;
  22. }
  23. /**
  24. * Returns variable name.
  25. * @returns {string} variable name
  26. */
  27. variableName() {
  28. return `__WEBPACK_LOCAL_MODULE_${this.idx}__`;
  29. }
  30. /**
  31. * Serializes this instance into the provided serializer context.
  32. * @param {ObjectSerializerContext} context context
  33. */
  34. serialize(context) {
  35. const { write } = context;
  36. write(this.name);
  37. write(this.idx);
  38. write(this.used);
  39. }
  40. /**
  41. * Restores this instance from the provided deserializer context.
  42. * @param {ObjectDeserializerContext} context context
  43. */
  44. deserialize(context) {
  45. const { read } = context;
  46. this.name = read();
  47. this.idx = read();
  48. this.used = read();
  49. }
  50. }
  51. makeSerializable(LocalModule, "webpack/lib/dependencies/LocalModule");
  52. module.exports = LocalModule;