filo_caspar/app/controller/store.js

40 lines
602 B
JavaScript

const socket = require('../socket')
const storage = {}
const events = {}
const store = {
get: function(name) {
return storage[name]
},
set: function(name, value, dontSend) {
storage[name] = value
if (dontSend) {
if (events[name]) {
events[name]()
}
return
}
socket.emit('store', {
name,
value,
})
},
listen: function(name, caller) {
events[name] = caller
},
unlisten: function(name) {
delete events[name]
},
}
socket.on('store', (data) => {
store.set(data.name, data.value, true)
})
module.exports = store