@ideal-photography/shared
Version:
Shared MongoDB and utility logic for Ideal Photography PWAs: users, products, services, bookings, orders/cart, galleries, reviews, notifications, campaigns, settings, audit logs, minimart items/orders, and push notification subscriptions.
19 lines (16 loc) • 726 B
JavaScript
import AlertBus from './AlertBus.js';
/**
* Developer-facing helper for emitting alerts.
* Usage: emitAlert('order.created', { orderId, userId }, { channels: { email: false } })
*
* @param {string} trigger Canonical trigger e.g. booking.reminder.24h
* @param {any} payload Arbitrary payload for handler processing
* @param {object} [opts] Optional overrides (channels, priority, etc.)
*/
export function emitAlert(trigger, payload = {}, opts = {}) {
if (!trigger || typeof trigger !== 'string') {
throw new Error('emitAlert: trigger must be non-empty string');
}
AlertBus.enqueue(trigger, payload, opts);
}
export { AlertBus as default };