RequireResolveContextDependency.js 1.9 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 makeSerializable = require("../util/makeSerializable");
  7. const ContextDependency = require("./ContextDependency");
  8. const ContextDependencyTemplateAsId = require("./ContextDependencyTemplateAsId");
  9. /** @import { Range } from "../javascript/JavascriptParser" */
  10. /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, Range]>} ObjectDeserializerContext */
  11. /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, Range]>} ObjectSerializerContext */
  12. /** @import { ContextDependencyOptions } from "./ContextDependency" */
  13. class RequireResolveContextDependency extends ContextDependency {
  14. /**
  15. * Creates an instance of RequireResolveContextDependency.
  16. * @param {ContextDependencyOptions} options options
  17. * @param {Range} range range
  18. * @param {Range} valueRange value range
  19. * @param {string=} context context
  20. */
  21. constructor(options, range, valueRange, context) {
  22. super(options, context);
  23. this.range = range;
  24. this.valueRange = valueRange;
  25. }
  26. get type() {
  27. return "amd require context";
  28. }
  29. /**
  30. * Serializes this instance into the provided serializer context.
  31. * @param {ObjectSerializerContext} context context
  32. */
  33. serialize(context) {
  34. context.write(this.range).write(this.valueRange);
  35. super.serialize(context);
  36. }
  37. /**
  38. * Restores this instance from the provided deserializer context.
  39. * @param {ObjectDeserializerContext} context context
  40. */
  41. deserialize(context) {
  42. this.range = context.read();
  43. const c1 = context.rest;
  44. this.valueRange = c1.read();
  45. super.deserialize(c1.rest);
  46. }
  47. }
  48. makeSerializable(
  49. RequireResolveContextDependency,
  50. "webpack/lib/dependencies/RequireResolveContextDependency"
  51. );
  52. RequireResolveContextDependency.Template = ContextDependencyTemplateAsId;
  53. module.exports = RequireResolveContextDependency;