optional.js 996 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.resolveOptionalPlugin = exports.isOptional = exports.markOptional = exports.OPTIONAL_SYMBOL = void 0;
  6. const OPTIONAL_SYMBOL = Symbol('__NEXT_COMPOSE_PLUGINS_OPTIONAL');
  7. /**
  8. * Marks a plugin as optional
  9. *
  10. * @param {function} plugin - function which requires a plugin
  11. */
  12. exports.OPTIONAL_SYMBOL = OPTIONAL_SYMBOL;
  13. const markOptional = plugin => {
  14. plugin[OPTIONAL_SYMBOL] = true; // eslint-disable-line no-param-reassign
  15. return plugin;
  16. };
  17. /**
  18. * Check if a plugin has been marked as optional before
  19. *
  20. * @param {function} plugin - plugin to check
  21. */
  22. exports.markOptional = markOptional;
  23. const isOptional = plugin => plugin[OPTIONAL_SYMBOL] === true;
  24. /**
  25. * Resolve an optional plugin
  26. *
  27. * @param {function} plugin - function which requires a plugin
  28. */
  29. exports.isOptional = isOptional;
  30. const resolveOptionalPlugin = plugin => plugin();
  31. exports.resolveOptionalPlugin = resolveOptionalPlugin;