invokeHooks.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.invokeHooksUntilDefinedAndNonNull = exports.invokeSyncDidStartHook = exports.invokeDidStartHook = void 0;
  4. const isDefined_js_1 = require("./isDefined.js");
  5. async function invokeDidStartHook(targets, hook) {
  6. const didEndHooks = (await Promise.all(targets.map((target) => hook(target)))).filter(isDefined_js_1.isDefined);
  7. didEndHooks.reverse();
  8. return async (...args) => {
  9. for (const didEndHook of didEndHooks) {
  10. didEndHook(...args);
  11. }
  12. };
  13. }
  14. exports.invokeDidStartHook = invokeDidStartHook;
  15. function invokeSyncDidStartHook(targets, hook) {
  16. const didEndHooks = targets
  17. .map((target) => hook(target))
  18. .filter(isDefined_js_1.isDefined);
  19. didEndHooks.reverse();
  20. return (...args) => {
  21. for (const didEndHook of didEndHooks) {
  22. didEndHook(...args);
  23. }
  24. };
  25. }
  26. exports.invokeSyncDidStartHook = invokeSyncDidStartHook;
  27. async function invokeHooksUntilDefinedAndNonNull(targets, hook) {
  28. for (const target of targets) {
  29. const value = await hook(target);
  30. if (value != null) {
  31. return value;
  32. }
  33. }
  34. return null;
  35. }
  36. exports.invokeHooksUntilDefinedAndNonNull = invokeHooksUntilDefinedAndNonNull;
  37. //# sourceMappingURL=invokeHooks.js.map