SObject.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.SObject = void 0;
  4. var SObjectObserver_1 = require("./SObjectObserver");
  5. var SObject = (function () {
  6. function SObject() {
  7. this.name = "";
  8. this.listeners = {};
  9. this.id = "";
  10. }
  11. SObject.prototype.connect = function (name, receiver, callback) {
  12. var observerList = this.listeners[name];
  13. if (!observerList) {
  14. this.listeners[name] = [];
  15. }
  16. else {
  17. for (var _i = 0, observerList_1 = observerList; _i < observerList_1.length; _i++) {
  18. var observer = observerList_1[_i];
  19. if (observer.compar(receiver)) {
  20. return;
  21. }
  22. }
  23. }
  24. this.listeners[name].push(new SObjectObserver_1.SObjectObserver(receiver, callback));
  25. };
  26. SObject.prototype.disconnect = function (name, receiver) {
  27. var observerList = this.listeners[name];
  28. if (!observerList) {
  29. return;
  30. }
  31. var length = observerList.length;
  32. for (var i = 0; i < length; i++) {
  33. var observer = observerList[i];
  34. if (observer.compar(receiver)) {
  35. observerList.splice(i, 1);
  36. break;
  37. }
  38. }
  39. if (observerList.length == 0) {
  40. delete this.listeners[name];
  41. }
  42. };
  43. SObject.prototype.$emit = function (name) {
  44. var args = [];
  45. for (var _i = 1; _i < arguments.length; _i++) {
  46. args[_i - 1] = arguments[_i];
  47. }
  48. var observerList = this.listeners[name];
  49. if (!observerList) {
  50. return;
  51. }
  52. for (var _a = 0, observerList_2 = observerList; _a < observerList_2.length; _a++) {
  53. var observer = observerList_2[_a];
  54. observer.notify(this, args);
  55. }
  56. };
  57. return SObject;
  58. }());
  59. exports.SObject = SObject;