ParseLiveQuery.js 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  7. var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
  8. var _EventEmitter = _interopRequireDefault(require("./EventEmitter"));
  9. var _LiveQueryClient = _interopRequireDefault(require("./LiveQueryClient"));
  10. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  11. function getLiveQueryClient() {
  12. return _CoreManager.default.getLiveQueryController().getDefaultLiveQueryClient();
  13. }
  14. var LiveQuery = new _EventEmitter.default();
  15. LiveQuery.open = (0, _asyncToGenerator2.default)(function* () {
  16. var liveQueryClient = yield getLiveQueryClient();
  17. liveQueryClient.open();
  18. });
  19. LiveQuery.close = (0, _asyncToGenerator2.default)(function* () {
  20. var liveQueryClient = yield getLiveQueryClient();
  21. liveQueryClient.close();
  22. });
  23. LiveQuery.on('error', function () {});
  24. var _default = LiveQuery;
  25. exports.default = _default;
  26. var defaultLiveQueryClient;
  27. var DefaultLiveQueryController = {
  28. setDefaultLiveQueryClient: function (liveQueryClient) {
  29. defaultLiveQueryClient = liveQueryClient;
  30. },
  31. getDefaultLiveQueryClient: function () {
  32. var _getDefaultLiveQueryClient = (0, _asyncToGenerator2.default)(function* () {
  33. if (defaultLiveQueryClient) {
  34. return defaultLiveQueryClient;
  35. }
  36. var _yield$Promise$all = yield Promise.all([_CoreManager.default.getUserController().currentUserAsync(), _CoreManager.default.getInstallationController().currentInstallationId()]),
  37. _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2),
  38. currentUser = _yield$Promise$all2[0],
  39. installationId = _yield$Promise$all2[1];
  40. var sessionToken = currentUser ? currentUser.getSessionToken() : undefined;
  41. var liveQueryServerURL = _CoreManager.default.get('LIVEQUERY_SERVER_URL');
  42. if (liveQueryServerURL && liveQueryServerURL.indexOf('ws') !== 0) {
  43. throw new Error('You need to set a proper Parse LiveQuery server url before using LiveQueryClient');
  44. }
  45. if (!liveQueryServerURL) {
  46. var serverURL = _CoreManager.default.get('SERVER_URL');
  47. var protocol = serverURL.indexOf('https') === 0 ? 'wss://' : 'ws://';
  48. var host = serverURL.replace(/^https?:\/\//, '');
  49. liveQueryServerURL = protocol + host;
  50. _CoreManager.default.set('LIVEQUERY_SERVER_URL', liveQueryServerURL);
  51. }
  52. var applicationId = _CoreManager.default.get('APPLICATION_ID');
  53. var javascriptKey = _CoreManager.default.get('JAVASCRIPT_KEY');
  54. var masterKey = _CoreManager.default.get('MASTER_KEY');
  55. defaultLiveQueryClient = new _LiveQueryClient.default({
  56. applicationId: applicationId,
  57. serverURL: liveQueryServerURL,
  58. javascriptKey: javascriptKey,
  59. masterKey: masterKey,
  60. sessionToken: sessionToken,
  61. installationId: installationId
  62. });
  63. defaultLiveQueryClient.on('error', function (error) {
  64. LiveQuery.emit('error', error);
  65. });
  66. defaultLiveQueryClient.on('open', function () {
  67. LiveQuery.emit('open');
  68. });
  69. defaultLiveQueryClient.on('close', function () {
  70. LiveQuery.emit('close');
  71. });
  72. return defaultLiveQueryClient;
  73. });
  74. function getDefaultLiveQueryClient() {
  75. return _getDefaultLiveQueryClient.apply(this, arguments);
  76. }
  77. return getDefaultLiveQueryClient;
  78. }(),
  79. _clearCachedDefaultClient: function () {
  80. defaultLiveQueryClient = null;
  81. }
  82. };
  83. _CoreManager.default.setLiveQueryController(DefaultLiveQueryController);