catan-client
Version:
Settlers of Catan Client Implementation
48 lines (36 loc) • 639 B
JavaScript
;
const _ = require('lodash');
const Entity = require('./Entity');
class Store {
constructor(entities) {
this.entities = entities || {};
this.count = 0;
}
get(id) {
return this.entities[id];
}
set(entity) {
entity.store = this;
this.entities[entity._id] = entity;
}
add(entity) {
this.count++;
return this.entities[entity._id] = entity;
}
remove(id) {
if(this.entities[id]) {
this.count--;
delete this.entities[id];
}
}
getAll() {
return this.entities;
}
size() {
return this.count;
}
lookupBy(params) {
return _.find(this.entities, params);
}
}
module.exports = Store;