Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fm = (() => {
- let model = {}
- let observers = { fm_observe_all: [] }
- return {
- save: (key, val) => {
- model[key] = val
- emit(key)
- },
- silentSave: (key, val) => {
- model[key] = val
- },
- emit: (key) => {
- if (typeof observers[key] !== 'undefined') {
- observers[key].forEach((observerCallback) => {
- observerCallback(model[key])
- })
- }
- observers['fm_observe_all'].forEach((observerCallback) => {
- observerCallback({[key]: model[key]})
- })
- },
- sub: (key, observerCallback) => {
- if (typeof observers[key] === 'undefined') {
- observers[key] = []
- }
- if (!observers[key].includes(observerCallback)) {
- observers[key].push(observerCallback)
- }
- },
- unsub: (key, observerCallback) => {
- if (typeof observers[key] === 'undefined') {
- observers[key] = []
- }
- var index = observers[key].indexOf(observerCallback)
- if (index > -1) {
- observers[key].splice(index, 1)
- }
- }
- }
- })()
- export default fm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement