diff options
Diffstat (limited to 'actioncable/app/javascript/action_cable/index.js')
-rw-r--r-- | actioncable/app/javascript/action_cable/index.js | 67 |
1 files changed, 27 insertions, 40 deletions
diff --git a/actioncable/app/javascript/action_cable/index.js b/actioncable/app/javascript/action_cable/index.js index eb0c4844df..9f41c14e94 100644 --- a/actioncable/app/javascript/action_cable/index.js +++ b/actioncable/app/javascript/action_cable/index.js @@ -4,55 +4,42 @@ import Consumer from "./consumer" import INTERNAL from "./internal" import Subscription from "./subscription" import Subscriptions from "./subscriptions" +import adapters from "./adapters" +import logger from "./logger" -export default { +export { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, Subscriptions, - WebSocket: window.WebSocket, - logger: window.console, - - createConsumer(url) { - if (url == null) { - const urlConfig = this.getConfig("url") - url = (urlConfig ? urlConfig : this.INTERNAL.default_mount_path) - } - return new Consumer(this.createWebSocketURL(url)) - }, - - getConfig(name) { - const element = document.head.querySelector(`meta[name='action-cable-${name}']`) - return (element ? element.getAttribute("content") : undefined) - }, - - createWebSocketURL(url) { - if (url && !/^wss?:/i.test(url)) { - const a = document.createElement("a") - a.href = url - // Fix populating Location properties in IE. Otherwise, protocol will be blank. - a.href = a.href - a.protocol = a.protocol.replace("http", "ws") - return a.href - } else { - return url - } - }, + adapters, + logger, +} - startDebugging() { - this.debugging = true - }, +export function createConsumer(url) { + if (url == null) { + const urlConfig = getConfig("url") + url = (urlConfig ? urlConfig : INTERNAL.default_mount_path) + } + return new Consumer(createWebSocketURL(url)) +} - stopDebugging() { - this.debugging = null - }, +export function getConfig(name) { + const element = document.head.querySelector(`meta[name='action-cable-${name}']`) + return (element ? element.getAttribute("content") : undefined) +} - log(...messages) { - if (this.debugging) { - messages.push(Date.now()) - this.logger.log("[ActionCable]", ...messages) - } +export function createWebSocketURL(url) { + if (url && !/^wss?:/i.test(url)) { + const a = document.createElement("a") + a.href = url + // Fix populating Location properties in IE. Otherwise, protocol will be blank. + a.href = a.href + a.protocol = a.protocol.replace("http", "ws") + return a.href + } else { + return url } } |