RequireResolveDependency.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. const ModuleDependency = require("./ModuleDependency");
  9. const ModuleDependencyAsId = require("./ModuleDependencyTemplateAsId");
  10. /** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
  11. /** @typedef {import("../ModuleGraph")} ModuleGraph */
  12. /** @typedef {import("../javascript/JavascriptParser").Range} Range */
  13. /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
  14. class RequireResolveDependency extends ModuleDependency {
  15. /**
  16. * Creates an instance of RequireResolveDependency.
  17. * @param {string} request the request string
  18. * @param {Range} range location in source code
  19. * @param {string=} context context
  20. */
  21. constructor(request, range, context) {
  22. super(request);
  23. this.range = range;
  24. this._context = context;
  25. }
  26. get type() {
  27. return "require.resolve";
  28. }
  29. get category() {
  30. return "commonjs";
  31. }
  32. /**
  33. * Returns list of exports referenced by this dependency
  34. * @param {ModuleGraph} moduleGraph module graph
  35. * @param {RuntimeSpec} runtime the runtime for which the module is analysed
  36. * @returns {ReferencedExports} referenced exports
  37. */
  38. getReferencedExports(moduleGraph, runtime) {
  39. // This doesn't use any export
  40. return Dependency.NO_EXPORTS_REFERENCED;
  41. }
  42. }
  43. makeSerializable(
  44. RequireResolveDependency,
  45. "webpack/lib/dependencies/RequireResolveDependency"
  46. );
  47. RequireResolveDependency.Template = ModuleDependencyAsId;
  48. module.exports = RequireResolveDependency;