ModuleFactory.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. * @typedef {object} ModuleFactoryResult
  11. * @property {Module=} module the created module or unset if no module was created
  12. * @property {Set<string>=} fileDependencies
  13. * @property {Set<string>=} contextDependencies
  14. * @property {Set<string>=} missingDependencies
  15. * @property {boolean=} cacheable allow to use the unsafe cache
  16. */
  17. /** @typedef {string | null} IssuerLayer */
  18. /**
  19. * @typedef {object} ModuleFactoryCreateDataContextInfo
  20. * @property {string} issuer
  21. * @property {IssuerLayer=} issuerLayer
  22. * @property {string=} compiler
  23. */
  24. /**
  25. * @typedef {object} ModuleFactoryCreateData
  26. * @property {ModuleFactoryCreateDataContextInfo} contextInfo
  27. * @property {ResolveOptions=} resolveOptions
  28. * @property {string} context
  29. * @property {Dependency[]} dependencies
  30. */
  31. /**
  32. * @typedef {(err?: Error | null, result?: ModuleFactoryResult) => void} ModuleFactoryCallback
  33. */
  34. class ModuleFactory {
  35. /* istanbul ignore next */
  36. /**
  37. * @abstract
  38. * @param {ModuleFactoryCreateData} data data object
  39. * @param {ModuleFactoryCallback} callback callback
  40. * @returns {void}
  41. */
  42. create(data, callback) {
  43. const AbstractMethodError = require("./AbstractMethodError");
  44. throw new AbstractMethodError();
  45. }
  46. }
  47. module.exports = ModuleFactory;