Guest User

Untitled

a guest
Jun 21st, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. import Vue from 'vue';
  2.  
  3. export default class Spy
  4. {
  5.  
  6. constructor(namespace = '')
  7. {
  8. this.namespace = namespace;
  9. this.vue = new Vue();
  10. }
  11.  
  12. /**
  13. * Emit/Fire an event
  14. *
  15. * @param {String} event the event to fire/emit
  16. * @param {Object} [data={}] the event payload/data
  17. * @return {void}
  18. * @author {glen}
  19. */
  20. emit(event, data = {})
  21. {
  22. this.vue.$emit(this.resolveNamespace(event), data);
  23. }
  24.  
  25. /**
  26. * Listen to event
  27. *
  28. * @param {String} event the event strong to listen with
  29. * @param {Function} callback the callback for the event
  30. * @return {void}
  31. * @author {glen}
  32. */
  33. on(event, callback)
  34. {
  35. this.vue.$on(this.resolveNamespace(event), callback);
  36. }
  37.  
  38. /**
  39. * Resolve namespace
  40. *
  41. * @param {String} event
  42. * @return {String}
  43. * @author {glen}
  44. */
  45. resolveNamespace(event)
  46. {
  47. if (this.namespace.length) {
  48. return [this.namespace, event].join('.');
  49. }
  50.  
  51. return event;
  52. }
  53. }
Add Comment
Please, Sign In to add comment