All files / web/src/lib/notifications bootstrap.ts

0% Statements 0/29
0% Branches 0/1
0% Functions 0/1
0% Lines 0/29

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30                                                           
import { registerChannel, getRegisteredChannels } from './dispatcher'
import { webPushChannel } from './channels/web-push-channel'
import { emailChannel } from './channels/email-channel'
import { socketIOChannel } from './channels/socketio-channel'

let bootstrapped = false

/**
 * Register all notification channels.
 *
 * Idempotent — safe to call multiple times.
 * Called lazily on first notification dispatch.
 */
export function bootstrapChannels(): void {
  if (bootstrapped) return

  registerChannel(webPushChannel)
  registerChannel(emailChannel)
  registerChannel(socketIOChannel)

  bootstrapped = true

  console.log(
    '[notifications] Bootstrapped channels:',
    getRegisteredChannels()
      .map((c) => c.name)
      .join(', ')
  )
}