UNPKG

storable-state

Version:

State management library that integrates with localStorage

25 lines (24 loc) 733 B
export default class PubSub { constructor() { this.events = {}; } subscribe(event, callback) { let self = this; if (!self.events.hasOwnProperty(event)) { self.events[event] = []; } self.events[event].push(callback); return () => self.events[event].push(callback); } unsubscribe(event, subscriber) { let self = this; return self.events[event].splice(subscriber, 1).length >= 1 ? true : false; } publish(event, data = {}) { let self = this; if (!self.events.hasOwnProperty(event)) { return []; } return self.events[event].map(callback => callback(data)); } }