diff options
Diffstat (limited to 'actioncable/app/assets/javascripts/action_cable.js')
-rw-r--r-- | actioncable/app/assets/javascripts/action_cable.js | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/actioncable/app/assets/javascripts/action_cable.js b/actioncable/app/assets/javascripts/action_cable.js index 280adbfa83..8349361405 100644 --- a/actioncable/app/assets/javascripts/action_cable.js +++ b/actioncable/app/assets/javascripts/action_cable.js @@ -28,6 +28,22 @@ throw new TypeError("Cannot call a class as a function"); } }; + var createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); var now = function now() { return new Date().getTime(); }; @@ -432,7 +448,7 @@ var Consumer = function() { function Consumer(url) { classCallCheck(this, Consumer); - this.url = url; + this._url = url; this.subscriptions = new Subscriptions(this); this.connection = new Connection(this); } @@ -452,19 +468,18 @@ return this.connection.open(); } }; + createClass(Consumer, [ { + key: "url", + get: function get$$1() { + return createWebSocketURL(this._url); + } + } ]); return Consumer; }(); - function createConsumer() { - var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig("url") || INTERNAL.default_mount_path; - return new Consumer(createWebSocketURL(url)); - } - function getConfig(name) { - var element = document.head.querySelector("meta[name='action-cable-" + name + "']"); - if (element) { - return element.getAttribute("content"); - } - } function createWebSocketURL(url) { + if (typeof url === "function") { + url = url(); + } if (url && !/^wss?:/i.test(url)) { var a = document.createElement("a"); a.href = url; @@ -475,6 +490,16 @@ return url; } } + function createConsumer() { + var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig("url") || INTERNAL.default_mount_path; + return new Consumer(url); + } + function getConfig(name) { + var element = document.head.querySelector("meta[name='action-cable-" + name + "']"); + if (element) { + return element.getAttribute("content"); + } + } exports.Connection = Connection; exports.ConnectionMonitor = ConnectionMonitor; exports.Consumer = Consumer; @@ -482,10 +507,10 @@ exports.Subscription = Subscription; exports.Subscriptions = Subscriptions; exports.adapters = adapters; + exports.createWebSocketURL = createWebSocketURL; exports.logger = logger; exports.createConsumer = createConsumer; exports.getConfig = getConfig; - exports.createWebSocketURL = createWebSocketURL; Object.defineProperty(exports, "__esModule", { value: true }); |