'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _events = require('events'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class Issues extends _events.EventEmitter { constructor() { super(); this.issues = {}; } addIssue(issueId, issue) { let newIssue = false; if (!this.issues[issueId]) { newIssue = true; } this.issues[issueId] = (0, _extends3.default)({}, issue, { id: issueId }); if (newIssue) { this.emit('ADDED', this.issues[issueId]); } else { this.emit('UPDATED', this.issues[issueId]); } } clearIssue(issueId) { const issue = this.issues[issueId]; if (issue) { delete this.issues[issueId]; this.emit('DELETED', issue); } } getIssueList() { return (0, _keys2.default)(this.issues).map(key => ({ cursor: key, node: this.issues[key] })); } } exports.default = Issues;