UNPKG

cheetah-framework

Version:

Cheetah Framework JS used in all our applications

65 lines (53 loc) 1.49 kB
import Echo from 'laravel-echo' import Pusher from 'pusher-js' import config from '@cheetah/config' window.echoActive = false function guessDriver () { if (window.Cheetah?.broadcastDriver) { return window.Cheetah?.broadcastDriver } if (window.Cheetah?.reverb?.key) { return 'reverb' } return window.Cheetah?.pusher?.key ? 'pusher' : null } const driver = guessDriver() if (config.disableEcho !== true && driver) { let echoOptions = null if (driver === 'reverb') { // Laravel Reverb const key = window.Cheetah?.reverb?.key const wsHost = window.Cheetah?.reverb?.host if (key && wsHost) { echoOptions = { broadcaster: driver, key, wsHost, forceTLS: !!window.Cheetah?.reverb?.useTLS, enabledTransports: ['ws', 'wss'] } } else { console.error('Missing reverb config for Echo') } } else if (driver === 'pusher') { // Pusher-js const key = window.Cheetah?.pusher?.key const cluster = window.Cheetah?.pusher?.cluster if (key && cluster) { echoOptions = { broadcaster: 'pusher', key, cluster, encrypted: true } window.Pusher = Pusher window.Pusher.logToConsole = _.get(window.Cheetah, 'pusher.debug', false) } else { console.error('Missing pusher config for Echo') } } if (echoOptions) { window.Echo = new Echo({ ...echoOptions, ...config.echoOptions }) window.echoActive = true } }