Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. const fm = (() => {
  2. let model = {}
  3. let observers = { fm_observe_all: [] }
  4. return {
  5. save: (key, val) => {
  6. model[key] = val
  7. emit(key)
  8. },
  9. silentSave: (key, val) => {
  10. model[key] = val
  11. },
  12. emit: (key) => {
  13. if (typeof observers[key] !== 'undefined') {
  14. observers[key].forEach((observerCallback) => {
  15. observerCallback(model[key])
  16. })
  17. }
  18. observers['fm_observe_all'].forEach((observerCallback) => {
  19. observerCallback({[key]: model[key]})
  20. })
  21. },
  22. sub: (key, observerCallback) => {
  23. if (typeof observers[key] === 'undefined') {
  24. observers[key] = []
  25. }
  26. if (!observers[key].includes(observerCallback)) {
  27. observers[key].push(observerCallback)
  28. }
  29. },
  30. unsub: (key, observerCallback) => {
  31. if (typeof observers[key] === 'undefined') {
  32. observers[key] = []
  33. }
  34. var index = observers[key].indexOf(observerCallback)
  35. if (index > -1) {
  36. observers[key].splice(index, 1)
  37. }
  38. }
  39. }
  40. })()
  41. export default fm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement