ModuleFactory.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. "use strict";
  6. /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
  7. /** @typedef {import("./Dependency")} Dependency */
  8. /** @typedef {import("./Module")} Module */
  9. /**
  10. * Defines the module factory result type used by this module.
  11. * @typedef {object} ModuleFactoryResult
  12. * @property {Module=} module the created module or unset if no module was created
  13. * @property {Set<string>=} fileDependencies
  14. * @property {Set<string>=} contextDependencies
  15. * @property {Set<string>=} missingDependencies
  16. * @property {boolean=} cacheable allow to use the unsafe cache
  17. */
  18. /** @typedef {string | null} IssuerLayer */
  19. /**
  20. * Defines the module factory create data context info type used by this module.
  21. * @typedef {object} ModuleFactoryCreateDataContextInfo
  22. * @property {string} issuer
  23. * @property {IssuerLayer} issuerLayer
  24. * @property {string=} compiler
  25. */
  26. /**
  27. * Defines the module factory create data type used by this module.
  28. * @typedef {object} ModuleFactoryCreateData
  29. * @property {ModuleFactoryCreateDataContextInfo} contextInfo
  30. * @property {ResolveOptions=} resolveOptions
  31. * @property {string} context
  32. * @property {Dependency[]} dependencies
  33. */
  34. /**
  35. * Represents the module factory runtime component.
  36. * @typedef {(err?: Error | null, result?: ModuleFactoryResult) => void} ModuleFactoryCallback
  37. */
  38. class ModuleFactory {
  39. /* istanbul ignore next */
  40. /**
  41. * Processes the provided data.
  42. * @abstract
  43. * @param {ModuleFactoryCreateData} data data object
  44. * @param {ModuleFactoryCallback} callback callback
  45. * @returns {void}
  46. */
  47. create(data, callback) {
  48. const AbstractMethodError = require("./AbstractMethodError");
  49. throw new AbstractMethodError();
  50. }
  51. }
  52. module.exports = ModuleFactory;