ProvideSharedModuleFactory.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra and Zackary Jackson @ScriptedAlchemy
  4. */
  5. "use strict";
  6. const ModuleFactory = require("../ModuleFactory");
  7. const ProvideSharedModule = require("./ProvideSharedModule");
  8. /** @typedef {import("../ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
  9. /** @typedef {import("../ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
  10. /** @typedef {import("./ProvideSharedDependency")} ProvideSharedDependency */
  11. class ProvideSharedModuleFactory extends ModuleFactory {
  12. /**
  13. * @param {ModuleFactoryCreateData} data data object
  14. * @param {ModuleFactoryCallback} callback callback
  15. * @returns {void}
  16. */
  17. create(data, callback) {
  18. const dep =
  19. /** @type {ProvideSharedDependency} */
  20. (data.dependencies[0]);
  21. callback(null, {
  22. module: new ProvideSharedModule(
  23. dep.shareScope,
  24. dep.name,
  25. dep.version,
  26. dep.request,
  27. dep.eager
  28. )
  29. });
  30. }
  31. }
  32. module.exports = ProvideSharedModuleFactory;