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.

110 lines 3.64 kB
/** * @module EventBus */ import { CORE, resolveOneOrMore, } from "../../utilities/_module-exports.js"; /** * * IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"` * @group Errors */ export class EventBusError extends Error { static deserialize(deserializedValue) { return new EventBusError(deserializedValue.message, deserializedValue.cause); } constructor(message, cause) { super(message, { cause }); this.name = EventBusError.name; } serialize() { return { name: this.name, message: this.message, cause: this.cause, }; } } /** * * IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"` * @group Errors */ export class UnexpectedEventBusError extends EventBusError { static deserialize(deserializedValue) { return new UnexpectedEventBusError(deserializedValue.message, deserializedValue.cause); } constructor(message, cause) { super(message, { cause }); this.name = UnexpectedEventBusError.name; } } /** * The error is thrown when an unexpected error occurs while removing a listener. * * IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"` * @group Errors */ export class UnableToRemoveListenerEventBusError extends UnexpectedEventBusError { static deserialize(deserializedValue) { return new UnableToRemoveListenerEventBusError(deserializedValue.message, deserializedValue.cause); } constructor(message, cause) { super(message, { cause }); this.name = UnableToRemoveListenerEventBusError.name; } } /** * The error is thrown when an unexpected error occurs while adding a listener. * * IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"` * @group Errors */ export class UnableToAddListenerEventBusError extends UnexpectedEventBusError { static deserialize(deserializedValue) { return new UnableToAddListenerEventBusError(deserializedValue.message, deserializedValue.cause); } constructor(message, cause) { super(message, { cause }); this.name = UnableToAddListenerEventBusError.name; } } /** * The error is thrown when an unexpected error occurs while dispatching an event. * * IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"` * @group Errors */ export class UnableToDispatchEventBusError extends UnexpectedEventBusError { constructor(message, cause) { super(message, { cause }); this.name = UnableToDispatchEventBusError.name; } } /** * * IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"` * @group Errors */ export const EVENT_BUS_ERRORS = { Base: EventBusError, Unexpected: UnexpectedEventBusError, UnableToRemoveListener: UnableToRemoveListenerEventBusError, UnableToAddListener: UnableToAddListenerEventBusError, UnableToDispatch: UnableToDispatchEventBusError, }; /** * The `registerEventBusErrorsToSerde` function registers all {@link IEventBus | `IEventBus`} related errors with `IFlexibleSerde`, ensuring they will properly be serialized and deserialized. * * IMPORT_PATH: `"@daiso-tech/core/event-bus/contracts"` * @group Errors */ export function registerEventBusErrorsToSerde(serde) { for (const serde_ of resolveOneOrMore(serde)) { serde_ .registerClass(EventBusError, CORE) .registerClass(UnexpectedEventBusError, CORE) .registerClass(UnableToRemoveListenerEventBusError, CORE) .registerClass(UnableToAddListenerEventBusError, CORE) .registerClass(UnableToDispatchEventBusError, CORE); } } //# sourceMappingURL=event-bus.errors.js.map