Skip to content

Commit

Permalink
dist, lib and lint fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
mohitpubnub committed Jan 11, 2024
1 parent 41383dc commit aab7eae
Show file tree
Hide file tree
Showing 30 changed files with 604 additions and 345 deletions.
460 changes: 285 additions & 175 deletions dist/web/pubnub.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dist/web/pubnub.min.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions lib/core/components/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ var default_1 = /** @class */ (function () {
this.useRequestId = setup.useRequestId || false;
this.requestMessageCountThreshold = setup.requestMessageCountThreshold;
if (setup.retryConfiguration) {
this.setRetryConfiguration(setup.retryConfiguration);
this._setRetryConfiguration(setup.retryConfiguration);
}
// set timeout to how long a transaction request will wait for the server (default 15 seconds)
this.setTransactionTimeout(setup.transactionalRequestTimeout || 15 * 1000);
Expand Down Expand Up @@ -182,7 +182,7 @@ var default_1 = /** @class */ (function () {
default_1.prototype.getVersion = function () {
return '7.4.5';
};
default_1.prototype.setRetryConfiguration = function (configuration) {
default_1.prototype._setRetryConfiguration = function (configuration) {
if (configuration.minimumdelay < 2) {
throw new Error('Minimum delay can not be set less than 2 seconds for retry');
}
Expand Down
2 changes: 0 additions & 2 deletions lib/core/components/eventEmitter.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,6 @@ var EventEmitter = /** @class */ (function () {
this.listenerManager.announceMessage(announce);
}
};
EventEmitter.prototype.emitStatus = function (s) {
};
EventEmitter.prototype._renameEvent = function (e) {
return e === 'set' ? 'updated' : 'removed';
};
Expand Down
6 changes: 3 additions & 3 deletions lib/core/pubnub-common.js
Original file line number Diff line number Diff line change
Expand Up @@ -238,14 +238,14 @@ var default_1 = /** @class */ (function () {
}
var eventEngine = new event_engine_1.EventEngine({
handshake: this.handshake,
receiveEvents: this.receiveMessages,
receiveMessages: this.receiveMessages,
delay: function (amount) { return new Promise(function (resolve) { return setTimeout(resolve, amount); }); },
join: this.join,
leave: this.leave,
leaveAll: this.leaveAll,
presenceState: this.presenceState,
config: modules.config,
emitEvents: function (events) {
emitMessages: function (events) {
var e_1, _a;
try {
for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {
Expand All @@ -270,6 +270,7 @@ var default_1 = /** @class */ (function () {
this.unsubscribeAll = eventEngine.unsubscribeAll.bind(eventEngine);
this.reconnect = eventEngine.reconnect.bind(eventEngine);
this.disconnect = eventEngine.disconnect.bind(eventEngine);
this.destroy = eventEngine.dispose.bind(eventEngine);
this.eventEngine = eventEngine;
}
else {
Expand Down Expand Up @@ -606,7 +607,6 @@ var default_1 = /** @class */ (function () {
this.setUserId = modules.config.setUserId.bind(modules.config);
this.getFilterExpression = modules.config.getFilterExpression.bind(modules.config);
this.setFilterExpression = modules.config.setFilterExpression.bind(modules.config);
// this.setCipherKey = modules.config.setCipherKey.bind(modules.config);
this.setCipherKey = function (key) { return modules.config.setCipherKey(key, setup, modules); };
this.setHeartbeatInterval = modules.config.setHeartbeatInterval.bind(modules.config);
if (networking.hasModule('proxy')) {
Expand Down
31 changes: 26 additions & 5 deletions lib/event-engine/core/retryPolicy.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,23 @@ var RetryPolicy = /** @class */ (function () {
maximumRetry: configuration.maximumRetry,
shouldRetry: function (error, attempt) {
var _a;
if (((_a = error === null || error === void 0 ? void 0 : error.status) === null || _a === void 0 ? void 0 : _a.statusCode) === 403) {
if (RetryPolicy.excludedErrorCodes.includes((_a = error === null || error === void 0 ? void 0 : error.status) === null || _a === void 0 ? void 0 : _a.statusCode)) {
return false;
}
return this.maximumRetry > attempt;
},
getDelay: function (_) {
return this.delay * 1000;
return (this.delay + Math.random()) * 1000;
},
getGiveupReason: function (error, attempt) {
var _a;
if (this.maximumRetry <= attempt) {
return 'retry attempts exhaused.';
}
if (RetryPolicy.excludedErrorCodes.includes((_a = error === null || error === void 0 ? void 0 : error.status) === null || _a === void 0 ? void 0 : _a.statusCode)) {
return 'forbidden or too many requests.';
}
return 'unknown error';
},
};
};
Expand All @@ -33,16 +43,27 @@ var RetryPolicy = /** @class */ (function () {
return this.maximumRetry > attempt;
},
getDelay: function (attempt) {
var calculatedDelay = Math.trunc(Math.pow(2, attempt)) * 1000 + Math.random() * 1000;
if (calculatedDelay > 150000) {
return 150000;
var calculatedDelay = (Math.pow(2, attempt) + Math.random()) * 1000;
if (calculatedDelay > this.maximumDelay) {
return this.maximumDelay;
}
else {
return calculatedDelay;
}
},
getGiveupReason: function (error, attempt) {
var _a;
if (this.maximumRetry <= attempt) {
return 'retry attempts exhaused.';
}
if (RetryPolicy.excludedErrorCodes.includes((_a = error === null || error === void 0 ? void 0 : error.status) === null || _a === void 0 ? void 0 : _a.statusCode)) {
return 'forbidden or too many requests.';
}
return 'unknown error';
},
};
};
RetryPolicy.excludedErrorCodes = [403, 429];
return RetryPolicy;
}());
exports.RetryPolicy = RetryPolicy;
76 changes: 39 additions & 37 deletions lib/event-engine/dispatcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,42 +86,42 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
_this.on(effects.handshake.type, (0, core_1.asyncHandler)(function (payload, abortSignal, _a) {
var handshake = _a.handshake, presenceState = _a.presenceState, config = _a.config;
return __awaiter(_this, void 0, void 0, function () {
var result, e_1;
var handshakeParams, result, e_1;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
abortSignal.throwIfAborted();
_b.label = 1;
case 1:
_b.trys.push([1, 3, , 4]);
return [4 /*yield*/, handshake({
abortSignal: abortSignal,
channels: payload.channels,
channelGroups: payload.groups,
filterExpression: config.filterExpression,
state: presenceState,
})];
handshakeParams = {
abortSignal: abortSignal,
channels: payload.channels,
channelGroups: payload.groups,
filterExpression: config.filterExpression,
};
if (config.maintainPresenceState)
handshakeParams.state = presenceState;
return [4 /*yield*/, handshake(handshakeParams)];
case 2:
result = _b.sent();
console.log("handshake response = ".concat(JSON.stringify(result)));
return [2 /*return*/, engine.transition(events.handshakingSuccess(result))];
return [2 /*return*/, engine.transition(events.handshakeSuccess(result))];
case 3:
e_1 = _b.sent();
console.log('at effect, received error = ', e_1, '\n', "".concat(e_1));
if (e_1 instanceof Error && e_1.message === 'Aborted') {
return [2 /*return*/];
}
if (e_1 instanceof endpoint_1.PubNubError) {
return [2 /*return*/, engine.transition(events.handshakingFailure(e_1))];
return [2 /*return*/, engine.transition(events.handshakeFailure(e_1))];
}
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
}
});
});
}));
_this.on(effects.receiveEvents.type, (0, core_1.asyncHandler)(function (payload, abortSignal, _a) {
var receiveEvents = _a.receiveEvents, config = _a.config;
_this.on(effects.receiveMessages.type, (0, core_1.asyncHandler)(function (payload, abortSignal, _a) {
var receiveMessages = _a.receiveMessages, config = _a.config;
return __awaiter(_this, void 0, void 0, function () {
var result, error_1;
return __generator(this, function (_b) {
Expand All @@ -131,7 +131,7 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
_b.label = 1;
case 1:
_b.trys.push([1, 3, , 4]);
return [4 /*yield*/, receiveEvents({
return [4 /*yield*/, receiveMessages({
abortSignal: abortSignal,
channels: payload.channels,
channelGroups: payload.groups,
Expand All @@ -141,28 +141,28 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
})];
case 2:
result = _b.sent();
engine.transition(events.receivingSuccess(result.metadata, result.messages));
engine.transition(events.receiveSuccess(result.metadata, result.messages));
return [3 /*break*/, 4];
case 3:
error_1 = _b.sent();
if (error_1 instanceof Error && error_1.message === 'Aborted') {
return [2 /*return*/];
}
if (error_1 instanceof endpoint_1.PubNubError && !abortSignal.aborted) {
return [2 /*return*/, engine.transition(events.receivingFailure(error_1))];
return [2 /*return*/, engine.transition(events.receiveFailure(error_1))];
}
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
}
});
});
}));
_this.on(effects.emitEvents.type, (0, core_1.asyncHandler)(function (payload, _, _a) {
var emitEvents = _a.emitEvents;
_this.on(effects.emitMessages.type, (0, core_1.asyncHandler)(function (payload, _, _a) {
var emitMessages = _a.emitMessages;
return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_b) {
if (payload.length > 0) {
emitEvents(payload);
emitMessages(payload);
}
return [2 /*return*/];
});
Expand All @@ -177,8 +177,8 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
});
});
}));
_this.on(effects.reconnect.type, (0, core_1.asyncHandler)(function (payload, abortSignal, _a) {
var receiveEvents = _a.receiveEvents, delay = _a.delay, config = _a.config;
_this.on(effects.receiveReconnect.type, (0, core_1.asyncHandler)(function (payload, abortSignal, _a) {
var receiveMessages = _a.receiveMessages, delay = _a.delay, config = _a.config;
return __awaiter(_this, void 0, void 0, function () {
var result, error_2;
return __generator(this, function (_b) {
Expand All @@ -193,7 +193,7 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
_b.label = 2;
case 2:
_b.trys.push([2, 4, , 5]);
return [4 /*yield*/, receiveEvents({
return [4 /*yield*/, receiveMessages({
abortSignal: abortSignal,
channels: payload.channels,
channelGroups: payload.groups,
Expand All @@ -203,18 +203,18 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
})];
case 3:
result = _b.sent();
return [2 /*return*/, engine.transition(events.reconnectingSuccess(result.metadata, result.messages))];
return [2 /*return*/, engine.transition(events.receiveReconnectSuccess(result.metadata, result.messages))];
case 4:
error_2 = _b.sent();
if (error_2 instanceof Error && error_2.message === 'Aborted') {
return [2 /*return*/];
}
if (error_2 instanceof endpoint_1.PubNubError) {
return [2 /*return*/, engine.transition(events.reconnectingFailure(error_2))];
return [2 /*return*/, engine.transition(events.receiveReconnectFailure(error_2))];
}
return [3 /*break*/, 5];
case 5: return [3 /*break*/, 7];
case 6: return [2 /*return*/, engine.transition(events.reconnectingGiveup())];
case 6: return [2 /*return*/, engine.transition(events.receiveReconnectGiveup(new endpoint_1.PubNubError(config.retryConfiguration.getGiveupReason(payload.reason, payload.attempts))))];
case 7: return [2 /*return*/];
}
});
Expand All @@ -223,7 +223,7 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
_this.on(effects.handshakeReconnect.type, (0, core_1.asyncHandler)(function (payload, abortSignal, _a) {
var handshake = _a.handshake, delay = _a.delay, presenceState = _a.presenceState, config = _a.config;
return __awaiter(_this, void 0, void 0, function () {
var result, error_3;
var handshakeParams, result, error_3;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
Expand All @@ -236,27 +236,29 @@ var EventEngineDispatcher = /** @class */ (function (_super) {
_b.label = 2;
case 2:
_b.trys.push([2, 4, , 5]);
return [4 /*yield*/, handshake({
abortSignal: abortSignal,
channels: payload.channels,
channelGroups: payload.groups,
filterExpression: config.filterExpression,
state: presenceState,
})];
handshakeParams = {
abortSignal: abortSignal,
channels: payload.channels,
channelGroups: payload.groups,
filterExpression: config.filterExpression,
};
if (config.maintainPresenceState)
handshakeParams.state = presenceState;
return [4 /*yield*/, handshake(handshakeParams)];
case 3:
result = _b.sent();
return [2 /*return*/, engine.transition(events.handshakingReconnectingSuccess(result))];
return [2 /*return*/, engine.transition(events.handshakeReconnectSuccess(result))];
case 4:
error_3 = _b.sent();
if (error_3 instanceof Error && error_3.message === 'Aborted') {
return [2 /*return*/];
}
if (error_3 instanceof endpoint_1.PubNubError) {
return [2 /*return*/, engine.transition(events.handshakingReconnectingFailure(error_3))];
return [2 /*return*/, engine.transition(events.handshakeReconnectFailure(error_3))];
}
return [3 /*break*/, 5];
case 5: return [3 /*break*/, 7];
case 6: return [2 /*return*/, engine.transition(events.handshakingReconnectingGiveup())];
case 6: return [2 /*return*/, engine.transition(events.handshakeReconnectGiveup(new endpoint_1.PubNubError(config.retryConfiguration.getGiveupReason(payload.reason, payload.attempts))))];
case 7: return [2 /*return*/];
}
});
Expand Down
8 changes: 4 additions & 4 deletions lib/event-engine/effects.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.handshakeReconnect = exports.reconnect = exports.emitStatus = exports.emitEvents = exports.receiveEvents = exports.handshake = void 0;
exports.handshakeReconnect = exports.receiveReconnect = exports.emitStatus = exports.emitMessages = exports.receiveMessages = exports.handshake = void 0;
var core_1 = require("./core");
exports.handshake = (0, core_1.createManagedEffect)('HANDSHAKE', function (channels, groups) { return ({
channels: channels,
groups: groups,
}); });
exports.receiveEvents = (0, core_1.createManagedEffect)('RECEIVE_MESSAGES', function (channels, groups, cursor) { return ({ channels: channels, groups: groups, cursor: cursor }); });
exports.emitEvents = (0, core_1.createEffect)('EMIT_MESSAGES', function (events) { return events; });
exports.receiveMessages = (0, core_1.createManagedEffect)('RECEIVE_MESSAGES', function (channels, groups, cursor) { return ({ channels: channels, groups: groups, cursor: cursor }); });
exports.emitMessages = (0, core_1.createEffect)('EMIT_MESSAGES', function (events) { return events; });
exports.emitStatus = (0, core_1.createEffect)('EMIT_STATUS', function (status) { return status; });
exports.reconnect = (0, core_1.createManagedEffect)('RECEIVE_RECONNECT', function (context) { return context; });
exports.receiveReconnect = (0, core_1.createManagedEffect)('RECEIVE_RECONNECT', function (context) { return context; });
exports.handshakeReconnect = (0, core_1.createManagedEffect)('HANDSHAKE_RECONNECT', function (context) { return context; });
Loading

0 comments on commit aab7eae

Please sign in to comment.