Files
Exponent GitHub Bot e3f6a67ce5 Initial commit
fbshipit-source-id: 04f171ad7fc354fbc437cd07abdee445323d9a0f
2018-07-17 18:51:11 +00:00

40 lines
774 B
JavaScript

import { EventEmitter } from 'events';
export default class Issues extends EventEmitter {
constructor() {
super();
this.issues = {};
}
addIssue(issueId, issue) {
let newIssue = false;
if (!this.issues[issueId]) {
newIssue = true;
}
this.issues[issueId] = {
...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 Object.keys(this.issues).map(key => ({
cursor: key,
node: this.issues[key],
}));
}
}