UNPKG

cu-events

Version:

Camelot Unchained Client Library - Events

70 lines (56 loc) 6.5 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); 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; }; })(); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var _cuRestapi = require('cu-restapi'); var _cuRestapi2 = _interopRequireDefault(_cuRestapi); var _cuCore = require('cu-core'); var POLL_INTERVAL = 5000; var timer = undefined; function run(emitter, topic) { var rest = new _cuRestapi2['default'](); function tick() { // TODO: switch to using cu-restapi rest.controlGame({ includeControlPoints: true }).then(function (data) { var instance = new _cuCore.ControlGame(data); emitter.emit(topic, instance); }, function (status, errorThrown) { emitter.emit(topic, { error: { status: status, reason: errorThrown } }); }); } if (!timer) { setInterval(tick, POLL_INTERVAL); } } var ControlGameListener = (function () { function ControlGameListener(handles) { _classCallCheck(this, ControlGameListener); this.listening = false; this.topic = handles.topic; } _createClass(ControlGameListener, [{ key: 'start', value: function start(emitter) { if (!this.listening) { this.listening = true; run(emitter, this.topic); } } }, { key: 'stop', value: function stop() { if (timer) { clearTimeout(timer); timer = null; this.listening = false; } } }]); return ControlGameListener; })(); exports['default'] = ControlGameListener; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRzL2xpc3RlbmVycy9Db250cm9sR2FtZS50cyJdLCJuYW1lcyI6WyJydW4iLCJydW4udGljayIsIkNvbnRyb2xHYW1lTGlzdGVuZXIiLCJDb250cm9sR2FtZUxpc3RlbmVyLmNvbnN0cnVjdG9yIiwiQ29udHJvbEdhbWVMaXN0ZW5lci5zdGFydCIsIkNvbnRyb2xHYW1lTGlzdGVuZXIuc3RvcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O3lCQU1pQixZQUFZOzs7O3NCQUVELFNBQVM7O0FBSXJDLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUMzQixJQUFJLEtBQVUsWUFBQSxDQUFDO0FBRWYsU0FBQSxHQUFBLENBQWEsT0FBcUIsRUFBRSxLQUFhLEVBQUE7QUFDL0NBLFFBQUlBLElBQUlBLEdBQUdBLDRCQUFVQSxDQUFDQTtBQUV0QkEsYUFBQUEsSUFBQUEsR0FBQUE7O0FBRUVDLFlBQUlBLENBQUNBLFdBQVdBLENBQUNBLEVBQUVBLG9CQUFvQkEsRUFBRUEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsVUFBQ0EsSUFBaUJBLEVBQUFBO0FBQ3RFQSxnQkFBTUEsUUFBUUEsR0FBR0Esd0JBQWdCQSxJQUFJQSxDQUFDQSxDQUFDQTtBQUN2Q0EsbUJBQU9BLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBO1NBQy9CQSxFQUFFQSxVQUFDQSxNQUFjQSxFQUFFQSxXQUFtQkEsRUFBQUE7QUFDckNBLG1CQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxFQUFFQSxFQUFFQSxLQUFLQSxFQUFFQSxFQUFFQSxNQUFNQSxFQUFFQSxNQUFNQSxFQUFFQSxNQUFNQSxFQUFFQSxXQUFXQSxFQUFFQSxFQUFDQSxDQUFDQSxDQUFDQTtTQUN4RUEsQ0FBQ0EsQ0FBQ0E7S0FDSkE7QUFDREQsUUFBSUEsQ0FBQ0EsS0FBS0EsRUFBRUE7QUFDVkEsbUJBQVdBLENBQUNBLElBQUlBLEVBQUVBLGFBQWFBLENBQUNBLENBQUNBO0tBQ2xDQTtDQUNGQTs7SUFFRCxtQkFBQTtBQUdFRSxhQUhGLG1CQUFBLENBR2NBLE9BQTJCQSxFQUFBQTs4QkFIekMsbUJBQUE7O0FBQ0VDLFlBQUFBLENBQUFBLFNBQVNBLEdBQVlBLEtBQUtBLENBQUNBO0FBR3pCQSxZQUFJQSxDQUFDQSxLQUFLQSxHQUFHQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQTtLQUM1QkE7O2lCQUxILG1CQUFBOztlQU1PRCxlQUFDQSxPQUFxQkEsRUFBQUE7QUFDekJFLGdCQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQTtBQUNuQkEsb0JBQUlBLENBQUNBLFNBQVNBLEdBQUdBLElBQUlBLENBQUNBO0FBQ3RCQSxtQkFBR0EsQ0FBQ0EsT0FBT0EsRUFBRUEsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7YUFDMUJBO1NBQ0ZBOzs7ZUFDR0YsZ0JBQUFBO0FBQ0ZHLGdCQUFJQSxLQUFLQSxFQUFFQTtBQUNUQSw0QkFBWUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7QUFDcEJBLHFCQUFLQSxHQUFHQSxJQUFJQSxDQUFDQTtBQUNiQSxvQkFBSUEsQ0FBQ0EsU0FBU0EsR0FBR0EsS0FBS0EsQ0FBQ0E7YUFDeEJBO1NBQ0ZBOzs7V0FsQkgsbUJBQUE7OztxQkFBQSxtQkFBQSIsImZpbGUiOiJ0cy9saXN0ZW5lcnMvQ29udHJvbEdhbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgU291cmNlIENvZGUgRm9ybSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGUgTW96aWxsYSBQdWJsaWNcbiAqIExpY2Vuc2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBNUEwgd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoaXNcbiAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uXG4gKi9cbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSAnLi4vY2xhc3Nlcy9FdmVudEVtaXR0ZXInO1xuaW1wb3J0IFJFU1QgZnJvbSAnY3UtcmVzdGFwaSc7XG5pbXBvcnQgSGFuZGxlc0NvbnRyb2xHYW1lIGZyb20gJy4uL2NsYXNzZXMvSGFuZGxlc0NvbnRyb2xHYW1lJztcbmltcG9ydCB7IENvbnRyb2xHYW1lIH0gZnJvbSAnY3UtY29yZSc7XG5cbmRlY2xhcmUgY29uc3QgY3VBUEk6IGFueTtcblxuY29uc3QgUE9MTF9JTlRFUlZBTCA9IDUwMDA7XG5sZXQgdGltZXI6IGFueTtcblxuZnVuY3Rpb24gcnVuKGVtaXR0ZXI6IEV2ZW50RW1pdHRlciwgdG9waWM6IHN0cmluZykge1xuICBsZXQgcmVzdCA9IG5ldyBSRVNUKCk7XG5cbiAgZnVuY3Rpb24gdGljaygpIHtcbiAgICAvLyBUT0RPOiBzd2l0Y2ggdG8gdXNpbmcgY3UtcmVzdGFwaVxuICAgIHJlc3QuY29udHJvbEdhbWUoeyBpbmNsdWRlQ29udHJvbFBvaW50czogdHJ1ZSB9KS50aGVuKChkYXRhOiBDb250cm9sR2FtZSkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29udHJvbEdhbWUoZGF0YSk7XG4gICAgICBlbWl0dGVyLmVtaXQodG9waWMsIGluc3RhbmNlKTtcbiAgICB9LCAoc3RhdHVzOiBzdHJpbmcsIGVycm9yVGhyb3duOiBzdHJpbmcpID0+IHtcbiAgICAgIGVtaXR0ZXIuZW1pdCh0b3BpYywgeyBlcnJvcjogeyBzdGF0dXM6IHN0YXR1cywgcmVhc29uOiBlcnJvclRocm93biB9fSk7XG4gICAgfSk7XG4gIH1cbiAgaWYgKCF0aW1lcikge1xuICAgIHNldEludGVydmFsKHRpY2ssIFBPTExfSU5URVJWQUwpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRyb2xHYW1lTGlzdGVuZXIge1xuICBsaXN0ZW5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG9waWM6IHN0cmluZztcbiAgY29uc3RydWN0b3IoaGFuZGxlczogSGFuZGxlc0NvbnRyb2xHYW1lKSB7XG4gICAgdGhpcy50b3BpYyA9IGhhbmRsZXMudG9waWM7XG4gIH1cbiAgc3RhcnQoZW1pdHRlcjogRXZlbnRFbWl0dGVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmluZykge1xuICAgICAgdGhpcy5saXN0ZW5pbmcgPSB0cnVlO1xuICAgICAgcnVuKGVtaXR0ZXIsIHRoaXMudG9waWMpO1xuICAgIH1cbiAgfVxuICBzdG9wKCkge1xuICAgIGlmICh0aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIHRpbWVyID0gbnVsbDtcbiAgICAgIHRoaXMubGlzdGVuaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii4uLyJ9