27 lines
657 B
JavaScript
27 lines
657 B
JavaScript
export default class OrderedObject {
|
|
entries = []
|
|
ids = {}
|
|
indexes = []
|
|
|
|
add(id, data) {
|
|
if(this.ids[id]) {
|
|
console.error(`Can't add item ${id}: id already exists`)
|
|
throw new global.ServerError(400, `Member with this email already exists`)
|
|
}
|
|
this.entries.push(data)
|
|
this.ids[id] = this.entries.length - 1
|
|
}
|
|
|
|
update(id, data) {
|
|
let index = this.ids[id]
|
|
this.entries[index] = data
|
|
}
|
|
|
|
delete(key) {
|
|
if (typeof key === "number") {
|
|
return this.entries[key]
|
|
} else {
|
|
return this.entries[this.ids[key]]
|
|
}
|
|
}
|
|
} |