AMDRequireContextDependency.js 1.8 KB

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