@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.37 kB
JavaScript
/**
* @module Lock
*/
import {} from "../../../../event-bus/contracts/event-bus.contract.js";
import { isLockError, LOCK_EVENTS, } from "../../../../lock/contracts/_module.js";
import {} from "../../../../middleware/contracts/_module.js";
import { callInvokable } from "../../../../utilities/_module.js";
/**
* @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;
};
}
/**
* @internal
*/
export function handleUnexpectedError(waitUntil, eventDispatcher, lock) {
return async ({ next }) => {
try {
return await next();
}
catch (error) {
if (isLockError(error)) {
throw error;
}
callInvokable(waitUntil, eventDispatcher.dispatch(LOCK_EVENTS.UNEXPECTED_ERROR, {
error,
lock,
}));
throw error;
}
};
}
//# sourceMappingURL=event-helpers.js.map