cu-events
Version:
Camelot Unchained Client Library - Events
70 lines (56 loc) • 6.5 kB
JavaScript
;
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