'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;