ProvideSharedModuleFactory.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. * Processes the provided data.
  14. * @param {ModuleFactoryCreateData} data data object
  15. * @param {ModuleFactoryCallback} callback callback
  16. * @returns {void}
  17. */
  18. create(data, callback) {
  19. const dep =
  20. /** @type {ProvideSharedDependency} */
  21. (data.dependencies[0]);
  22. callback(null, {
  23. module: new ProvideSharedModule(
  24. dep.shareScope,
  25. dep.name,
  26. dep.version,
  27. dep.request,
  28. dep.eager
  29. )
  30. });
  31. }
  32. }
  33. module.exports = ProvideSharedModuleFactory;