UNPKG

migme-ferry

Version:

Ferry transports packets to and from fusion/fission

127 lines (97 loc) 3.72 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.FerryEvent = exports.PacketType = exports.Packet = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.default = Ferry; var _ferryEvent = require('./events/ferry-event'); var _ferryEvent2 = _interopRequireDefault(_ferryEvent); var _packetType = require('./packets/packet-type'); var _packetType2 = _interopRequireDefault(_packetType); var _packet = require('./packets/packet'); var _packet2 = _interopRequireDefault(_packet); var _transporter = require('./data/transporter'); var _transporter2 = _interopRequireDefault(_transporter); var _config = require('./config/config'); var _config2 = _interopRequireDefault(_config); var _dispatcher = require('./events/dispatcher'); var _dispatcher2 = _interopRequireDefault(_dispatcher); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function Ferry() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, access_token = _ref.access_token, _ref$session_id = _ref.session_id, session_id = _ref$session_id === undefined ? '' : _ref$session_id, _ref$socket_path = _ref.socket_path, socket_path = _ref$socket_path === undefined ? 'ws://stream.mig.me:8000' : _ref$socket_path, _ref$ajax_path = _ref.ajax_path, ajax_path = _ref$ajax_path === undefined ? 'http://mig.me/xml' : _ref$ajax_path, _ref$keep_alive = _ref.keep_alive, keep_alive = _ref$keep_alive === undefined ? 50 * 1000 : _ref$keep_alive, _ref$debug = _ref.debug, debug = _ref$debug === undefined ? false : _ref$debug; Object.assign(_config2.default, { access_token: access_token, session_id: session_id, socket_path: socket_path, ajax_path: ajax_path, keep_alive: keep_alive, debug: debug }); var state = { user: null, transporter: (0, _transporter2.default)() }; return { on: function on(type, fn) { return _dispatcher2.default.on(type, fn); }, once: function once(type, fn) { return _dispatcher2.default.once(type, fn); }, emit: function emit() { _dispatcher2.default.emit.apply(_dispatcher2.default, arguments); }, off: function off(type, fn) { return _dispatcher2.default.removeListener(type, fn); }, connect: function connect() { return new Promise(function (resolve, reject) { var onReady = function onReady(usr) { state.user = usr; state.transporter.keepAlive(); resolve(usr); }; _dispatcher2.default.once(_ferryEvent2.default.READY, onReady); state.transporter.connect(); }); }, close: function close() { if (state.transporter) state.transporter.close(); }, get isReady() { return state.transporter.isReady; }, get user() { return state.user; }, set user(obj) { if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object') { state.user = obj; } }, get transporter() { return state.transporter; }, send: function send(packet) { if (!(packet instanceof _packet2.default)) { throw new Error('packet must be an instance of Packet'); } state.transporter.sendPacket(packet); } }; } exports.Packet = _packet2.default; exports.PacketType = _packetType2.default; exports.FerryEvent = _ferryEvent2.default;