UNPKG

@daiso-tech/core

Version:

The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.

43 lines 1.42 kB
/** * @module SharedLock */ import {} from "../../../../event-bus/contracts/event-bus.contract.js"; import {} from "../../../../middleware/contracts/_module.js"; import { isSharedLockError, SHARED_LOCK_EVENTS, } from "../../../../shared-lock/contracts/_module.js"; import { callInvokable } from "../../../../utilities/_module.js"; /** * @internal */ export function handleUnexpectedError(waitUntil, eventDispatcher, sharedLock) { return async ({ next }) => { try { return await next(); } catch (error) { if (isSharedLockError(error)) { throw error; } callInvokable(waitUntil, eventDispatcher.dispatch(SHARED_LOCK_EVENTS.UNEXPECTED_ERROR, { error, sharedLock, })); throw error; } }; } /** * @internal */ export function handleDispatch(settings) { return async ({ next }) => { const result = await next(); if (result && settings.on === "true") { callInvokable(settings.waitUntil, settings.eventDispatcher.dispatch(settings.eventName, settings.eventData)); } if (!result && settings.on === "false") { callInvokable(settings.waitUntil, settings.eventDispatcher.dispatch(settings.eventName, settings.eventData)); } return result; }; } //# sourceMappingURL=event-helpers.js.map