airdcpp-apisocket 2.4.4 → 2.4.5-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GUIDE.md +6 -6
- package/babel.config.cjs +6 -0
- package/dist/NodeSocket.d.ts +3 -3
- package/dist/NodeSocket.js +9 -5
- package/dist/NodeSocket.js.map +1 -1
- package/dist/Promise.js +6 -6
- package/dist/Promise.js.map +1 -1
- package/dist/PublicHelpers.d.ts +1 -1
- package/dist/PublicHelpers.js +75 -168
- package/dist/PublicHelpers.js.map +1 -1
- package/dist/SocketBase.d.ts +2 -2
- package/dist/SocketBase.js +81 -97
- package/dist/SocketBase.js.map +1 -1
- package/dist/SocketLogger.d.ts +2 -2
- package/dist/SocketLogger.js +28 -38
- package/dist/SocketLogger.js.map +1 -1
- package/dist/SocketRequestHandler.d.ts +6 -6
- package/dist/SocketRequestHandler.js +55 -69
- package/dist/SocketRequestHandler.js.map +1 -1
- package/dist/SocketSubscriptionHandler.d.ts +5 -5
- package/dist/SocketSubscriptionHandler.js +55 -70
- package/dist/SocketSubscriptionHandler.js.map +1 -1
- package/dist/types/api.d.ts +3 -3
- package/dist/types/api_internal.d.ts +2 -2
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.js +12 -8
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +3 -3
- package/dist/types/public_helpers.d.ts +1 -1
- package/dist/types/public_helpers_internal.d.ts +2 -2
- package/dist/types/requests.d.ts +1 -1
- package/dist/types/socket.d.ts +7 -7
- package/dist/types/socket.js +0 -1
- package/dist/types/socket.js.map +1 -1
- package/dist/types/subscriptions.d.ts +9 -9
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/dist-es/NodeSocket.d.ts +3 -3
- package/dist-es/NodeSocket.js +3 -3
- package/dist-es/NodeSocket.js.map +1 -1
- package/dist-es/Promise.js +6 -6
- package/dist-es/Promise.js.map +1 -1
- package/dist-es/PublicHelpers.d.ts +1 -1
- package/dist-es/PublicHelpers.js +75 -168
- package/dist-es/PublicHelpers.js.map +1 -1
- package/dist-es/SocketBase.d.ts +2 -2
- package/dist-es/SocketBase.js +76 -92
- package/dist-es/SocketBase.js.map +1 -1
- package/dist-es/SocketLogger.d.ts +2 -2
- package/dist-es/SocketLogger.js +31 -41
- package/dist-es/SocketLogger.js.map +1 -1
- package/dist-es/SocketRequestHandler.d.ts +6 -6
- package/dist-es/SocketRequestHandler.js +51 -65
- package/dist-es/SocketRequestHandler.js.map +1 -1
- package/dist-es/SocketSubscriptionHandler.d.ts +5 -5
- package/dist-es/SocketSubscriptionHandler.js +52 -67
- package/dist-es/SocketSubscriptionHandler.js.map +1 -1
- package/dist-es/types/api.d.ts +3 -3
- package/dist-es/types/api_internal.d.ts +2 -2
- package/dist-es/types/index.d.ts +7 -7
- package/dist-es/types/index.js +7 -7
- package/dist-es/types/index.js.map +1 -1
- package/dist-es/types/options.d.ts +3 -3
- package/dist-es/types/public_helpers.d.ts +1 -1
- package/dist-es/types/public_helpers_internal.d.ts +2 -2
- package/dist-es/types/requests.d.ts +1 -1
- package/dist-es/types/socket.d.ts +7 -7
- package/dist-es/types/socket.js +0 -1
- package/dist-es/types/socket.js.map +1 -1
- package/dist-es/types/subscriptions.d.ts +9 -9
- package/dist-es/utils.d.ts +2 -2
- package/dist-es/utils.js +1 -1
- package/dist-es/utils.js.map +1 -1
- package/jest.config.js +18 -3
- package/package.json +15 -13
- package/src/NodeSocket.ts +3 -3
- package/src/PublicHelpers.ts +2 -2
- package/src/SocketBase.ts +9 -9
- package/src/SocketLogger.ts +5 -5
- package/src/SocketRequestHandler.ts +8 -8
- package/src/SocketSubscriptionHandler.ts +10 -10
- package/src/tests/Socket.test.ts +30 -22
- package/src/tests/helpers.ts +7 -6
- package/src/tests/public_helpers.test.ts +9 -8
- package/src/types/api_internal.ts +1 -1
- package/src/types/index.ts +7 -7
- package/src/types/public_helpers_internal.ts +1 -1
- package/src/types/requests.ts +1 -1
- package/src/types/socket.ts +4 -20
- package/src/types/subscriptions.ts +1 -1
- package/src/utils.ts +1 -1
- package/tsconfig.json +4 -8
- package/dist/tests/Socket.test.d.ts +0 -1
- package/dist/tests/Socket.test.js +0 -758
- package/dist/tests/Socket.test.js.map +0 -1
- package/dist/tests/helpers.d.ts +0 -57
- package/dist/tests/helpers.js +0 -178
- package/dist/tests/helpers.js.map +0 -1
- package/dist/tests/public_helpers.test.d.ts +0 -1
- package/dist/tests/public_helpers.test.js +0 -241
- package/dist/tests/public_helpers.test.js.map +0 -1
- package/dist-es/tests/Socket.test.d.ts +0 -1
- package/dist-es/tests/Socket.test.js +0 -734
- package/dist-es/tests/Socket.test.js.map +0 -1
- package/dist-es/tests/helpers.d.ts +0 -57
- package/dist-es/tests/helpers.js +0 -168
- package/dist-es/tests/helpers.js.map +0 -1
- package/dist-es/tests/public_helpers.test.d.ts +0 -1
- package/dist-es/tests/public_helpers.test.js +0 -236
- package/dist-es/tests/public_helpers.test.js.map +0 -1
@@ -1,73 +1,60 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
3
|
-
__assign = Object.assign || function(t) {
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
-
s = arguments[i];
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
-
t[p] = s[p];
|
8
|
-
}
|
9
|
-
return t;
|
10
|
-
};
|
11
|
-
return __assign.apply(this, arguments);
|
12
|
-
};
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
4
|
};
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
var timeoutReportInterval;
|
6
|
+
const chalk_1 = __importDefault(require("chalk"));
|
7
|
+
const invariant_1 = __importDefault(require("invariant"));
|
8
|
+
const Promise_js_1 = __importDefault(require("./Promise.js"));
|
9
|
+
const utils_js_1 = require("./utils.js");
|
10
|
+
const SocketRequestHandler = (socket, logger, { requestTimeout = 30, ignoredRequestPaths }) => {
|
11
|
+
let callbacks = {};
|
12
|
+
let currentCallbackId = 0;
|
13
|
+
let timeoutReportInterval;
|
26
14
|
// Internal
|
27
15
|
// This creates a new callback ID for a request
|
28
|
-
|
16
|
+
const getCallbackId = () => {
|
29
17
|
if (currentCallbackId > 100000) {
|
30
18
|
currentCallbackId = 0;
|
31
19
|
}
|
32
20
|
currentCallbackId += 1;
|
33
21
|
return currentCallbackId;
|
34
22
|
};
|
35
|
-
|
23
|
+
const filterPassword = (data) => {
|
36
24
|
if (!data || !data.hasOwnProperty('password')) {
|
37
25
|
return data;
|
38
26
|
}
|
39
|
-
return
|
27
|
+
return Object.assign(Object.assign({}, data), { password: '(hidden)' });
|
40
28
|
};
|
41
|
-
|
42
|
-
if (authenticating === void 0) { authenticating = false; }
|
29
|
+
const sendRequest = (method, path, data, authenticating = false) => {
|
43
30
|
// Pre-checks
|
44
31
|
if (!authenticating && !socket().isConnected()) {
|
45
|
-
logger.warn(
|
46
|
-
return
|
32
|
+
logger.warn(`Attempting to send request on a non-authenticated socket: ${path}`);
|
33
|
+
return Promise_js_1.default.reject('Not authorized');
|
47
34
|
}
|
48
35
|
if (!socket().nativeSocket) {
|
49
|
-
logger.warn(
|
50
|
-
return
|
36
|
+
logger.warn(`Attempting to send request without a socket: ${path}`);
|
37
|
+
return Promise_js_1.default.reject('No socket');
|
51
38
|
}
|
52
|
-
|
39
|
+
const callbackId = getCallbackId();
|
53
40
|
// Reporting
|
54
41
|
(0, invariant_1.default)(path, 'Attempting socket request without a path');
|
55
|
-
|
42
|
+
const ignored = (0, utils_js_1.eventIgnored)(path, ignoredRequestPaths);
|
56
43
|
if (!ignored) {
|
57
44
|
logger.verbose(chalk_1.default.white.bold(callbackId.toString()), method, path, data ? filterPassword(data) : '(no data)');
|
58
45
|
}
|
59
46
|
// Callback
|
60
|
-
|
47
|
+
const resolver = Promise_js_1.default.pending();
|
61
48
|
callbacks[callbackId] = {
|
62
49
|
time: Date.now(),
|
63
|
-
resolver
|
64
|
-
ignored
|
50
|
+
resolver,
|
51
|
+
ignored,
|
65
52
|
};
|
66
53
|
// Actual request
|
67
|
-
|
68
|
-
path
|
69
|
-
method
|
70
|
-
data
|
54
|
+
const request = {
|
55
|
+
path,
|
56
|
+
method,
|
57
|
+
data,
|
71
58
|
callback_id: callbackId,
|
72
59
|
};
|
73
60
|
socket().nativeSocket.send(JSON.stringify(request));
|
@@ -76,102 +63,101 @@ var SocketRequestHandler = function (socket, logger, _a) {
|
|
76
63
|
// Report timed out requests
|
77
64
|
// This is more about spotting backend issues, such as frozen threads and dropped responses
|
78
65
|
// The socket itself should handle actual connection issues
|
79
|
-
|
80
|
-
|
81
|
-
Object.keys(callbacks).forEach(
|
82
|
-
|
66
|
+
const reportTimeouts = () => {
|
67
|
+
const now = Date.now();
|
68
|
+
Object.keys(callbacks).forEach(callbackId => {
|
69
|
+
const request = callbacks[callbackId];
|
83
70
|
if (request.time + (requestTimeout * 1000) < now) {
|
84
|
-
logger.warn(
|
71
|
+
logger.warn(`Request ${callbackId} timed out`);
|
85
72
|
}
|
86
73
|
});
|
87
74
|
};
|
88
|
-
|
89
|
-
if (message === void 0) { message = 'Request cancelled'; }
|
75
|
+
const cancelPendingRequests = (message = 'Request cancelled') => {
|
90
76
|
Object.keys(callbacks)
|
91
|
-
.forEach(
|
92
|
-
logger.verbose(
|
93
|
-
|
77
|
+
.forEach(id => {
|
78
|
+
logger.verbose(`Canceling a pending request ${id} (${message})`);
|
79
|
+
const cb = callbacks[id];
|
94
80
|
cb.resolver.reject(message);
|
95
81
|
});
|
96
82
|
callbacks = {};
|
97
83
|
};
|
98
84
|
// Public
|
99
|
-
|
100
|
-
put:
|
85
|
+
const RequestsPublic = {
|
86
|
+
put: (path, data) => {
|
101
87
|
return sendRequest('PUT', path, data);
|
102
88
|
},
|
103
|
-
patch:
|
89
|
+
patch: (path, data) => {
|
104
90
|
return sendRequest('PATCH', path, data);
|
105
91
|
},
|
106
|
-
post:
|
92
|
+
post: (path, data) => {
|
107
93
|
return sendRequest('POST', path, data);
|
108
94
|
},
|
109
|
-
delete:
|
95
|
+
delete: (path) => {
|
110
96
|
//invariant(!data, 'No data is allowed for delete command');
|
111
97
|
return sendRequest('DELETE', path);
|
112
98
|
},
|
113
|
-
get:
|
99
|
+
get: (path) => {
|
114
100
|
//invariant(!data, 'No data is allowed for get command');
|
115
101
|
return sendRequest('GET', path);
|
116
102
|
},
|
117
|
-
getPendingRequestCount:
|
103
|
+
getPendingRequestCount: () => {
|
118
104
|
return Object.keys(callbacks).length;
|
119
105
|
},
|
120
106
|
};
|
121
107
|
Object.assign(RequestsPublic, {
|
122
108
|
reportRequestTimeouts: reportTimeouts, // internal method for testing
|
123
109
|
});
|
124
|
-
|
125
|
-
return error.field && error.code ? error.field
|
110
|
+
const formatFieldError = (error) => {
|
111
|
+
return error.field && error.code ? `${error.field} (${error.code})` : '';
|
126
112
|
};
|
127
113
|
// Shared for the socket
|
128
|
-
|
129
|
-
onSocketConnected
|
114
|
+
const RequestsInternal = {
|
115
|
+
onSocketConnected() {
|
130
116
|
timeoutReportInterval = setInterval(reportTimeouts, 30000);
|
131
117
|
},
|
132
|
-
onSocketDisconnected
|
118
|
+
onSocketDisconnected() {
|
133
119
|
// Clear callbacks
|
134
120
|
cancelPendingRequests('Socket disconnected');
|
135
121
|
clearTimeout(timeoutReportInterval);
|
136
122
|
},
|
137
|
-
handleMessage
|
138
|
-
|
123
|
+
handleMessage(messageObj) {
|
124
|
+
const id = messageObj.callback_id;
|
139
125
|
if (!callbacks.hasOwnProperty(id)) {
|
140
126
|
logger.warn('No pending request for an API response', id, messageObj);
|
141
127
|
return;
|
142
128
|
}
|
143
129
|
if (messageObj.code >= 200 && messageObj.code <= 204) {
|
144
|
-
|
130
|
+
const { data } = messageObj;
|
145
131
|
if (!callbacks[id].ignored) {
|
146
132
|
logger.verbose(chalk_1.default.green(id.toString()), 'SUCCEEDED', data ? data : '(no data)');
|
147
133
|
}
|
148
134
|
callbacks[id].resolver.resolve(data);
|
149
135
|
}
|
150
136
|
else {
|
151
|
-
|
137
|
+
const errorMessageObj = messageObj;
|
152
138
|
if (!errorMessageObj.error) {
|
153
139
|
// API should always return an error message but this isn't always the case
|
154
140
|
// (e.g. https://github.com/airdcpp/airdcpp-windows/commit/596b31a9c8c4e72f6c9279972a40ea30f10798c4)
|
155
141
|
logger.warn('Error message missing from the response (this is an API bug that should be reported)', id, messageObj);
|
156
142
|
}
|
157
|
-
|
158
|
-
|
143
|
+
const { code } = errorMessageObj;
|
144
|
+
const error = errorMessageObj.error || {
|
159
145
|
message: '(no error description)'
|
160
146
|
};
|
161
147
|
logger.warn(id, code, error.message, formatFieldError(error));
|
162
148
|
callbacks[id].resolver.reject({
|
163
149
|
message: error.message,
|
164
|
-
code
|
150
|
+
code,
|
165
151
|
json: error
|
166
152
|
});
|
167
153
|
}
|
168
154
|
delete callbacks[id];
|
169
155
|
},
|
170
|
-
postAuthenticate
|
156
|
+
postAuthenticate(path, data) {
|
171
157
|
return sendRequest('POST', path, data, true);
|
172
158
|
},
|
173
159
|
};
|
174
|
-
return
|
160
|
+
return Object.assign(Object.assign({}, RequestsInternal), { socket: RequestsPublic });
|
175
161
|
};
|
176
162
|
exports.default = SocketRequestHandler;
|
177
163
|
//# sourceMappingURL=SocketRequestHandler.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SocketRequestHandler.js","sourceRoot":"","sources":["../src/SocketRequestHandler.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"SocketRequestHandler.js","sourceRoot":"","sources":["../src/SocketRequestHandler.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import { Logger } from './types/logger';
|
2
|
-
import * as APIInternal from './types/api_internal';
|
3
|
-
import * as Options from './types/options';
|
4
|
-
import * as Socket from './types/socket';
|
5
|
-
import * as Subscriptions from './types/subscriptions';
|
1
|
+
import { Logger } from './types/logger.js';
|
2
|
+
import * as APIInternal from './types/api_internal.js';
|
3
|
+
import * as Options from './types/options.js';
|
4
|
+
import * as Socket from './types/socket.js';
|
5
|
+
import * as Subscriptions from './types/subscriptions.js';
|
6
6
|
declare const SocketSubscriptionHandler: (socket: () => Socket.APISocket, logger: Logger, { ignoredListenerEvents }: Options.SocketSubscriptionOptions) => {
|
7
7
|
socket: Subscriptions.SocketSubscriptions;
|
8
8
|
onSocketDisconnected(): void;
|
@@ -1,41 +1,29 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
3
|
-
__assign = Object.assign || function(t) {
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
-
s = arguments[i];
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
-
t[p] = s[p];
|
8
|
-
}
|
9
|
-
return t;
|
10
|
-
};
|
11
|
-
return __assign.apply(this, arguments);
|
12
|
-
};
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
4
|
};
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
var _b = _a.ignoredListenerEvents, ignoredListenerEvents = _b === void 0 ? [] : _b;
|
6
|
+
const invariant_1 = __importDefault(require("invariant"));
|
7
|
+
const events_1 = require("events");
|
8
|
+
const utils_js_1 = require("./utils.js");
|
9
|
+
const Promise_js_1 = __importDefault(require("./Promise.js"));
|
10
|
+
const SocketSubscriptionHandler = (socket, logger, { ignoredListenerEvents = [] }) => {
|
23
11
|
// Internal
|
24
|
-
|
12
|
+
const getEmitId = (event, id) => {
|
25
13
|
(0, invariant_1.default)(id !== 0, 'Entity ID "0" is not allowed');
|
26
14
|
return id ? (event + id) : event;
|
27
15
|
};
|
28
|
-
|
16
|
+
const getSubscriptionUrl = (moduleUrl, id, event) => {
|
29
17
|
if (id) {
|
30
|
-
return moduleUrl
|
18
|
+
return `${moduleUrl}/${id}/listeners/${event}`;
|
31
19
|
}
|
32
|
-
return moduleUrl
|
20
|
+
return `${moduleUrl}/listeners/${event}`;
|
33
21
|
};
|
34
|
-
|
35
|
-
|
22
|
+
let subscriptions = {};
|
23
|
+
const emitter = new events_1.EventEmitter();
|
36
24
|
// Subscriptions pending to be added in the API
|
37
|
-
|
38
|
-
|
25
|
+
const pendingSubscriptions = {};
|
26
|
+
const removeSocketListener = (subscriptionUrl, subscriptionId, callback, sendApi) => {
|
39
27
|
if (!socket().isConnected()) {
|
40
28
|
return;
|
41
29
|
}
|
@@ -44,43 +32,40 @@ var SocketSubscriptionHandler = function (socket, logger, _a) {
|
|
44
32
|
if (subscriptions[subscriptionId] === 0) {
|
45
33
|
if (sendApi && socket().isConnected()) {
|
46
34
|
socket().delete(subscriptionUrl)
|
47
|
-
.catch(
|
35
|
+
.catch((error) => {
|
48
36
|
logger.error('Failed to remove socket listener', subscriptionUrl, error);
|
49
37
|
});
|
50
38
|
}
|
51
39
|
delete subscriptions[subscriptionId];
|
52
40
|
}
|
53
41
|
};
|
54
|
-
|
42
|
+
const removeLocalListener = (subscriptionId, callback) => {
|
55
43
|
emitter.removeListener(subscriptionId, callback);
|
56
44
|
};
|
57
|
-
|
58
|
-
callback(data,
|
59
|
-
socket().post(subscriptionUrl
|
60
|
-
.catch(
|
61
|
-
},
|
62
|
-
socket().post(subscriptionUrl
|
45
|
+
const handleHookAction = (subscriptionUrl, callback, data, completionId) => {
|
46
|
+
callback(data, completionData => {
|
47
|
+
socket().post(`${subscriptionUrl}/${completionId}/resolve`, completionData)
|
48
|
+
.catch((error) => logger.error('Failed to complete hook action', subscriptionUrl, error));
|
49
|
+
}, (rejectId, rejectMessage) => {
|
50
|
+
socket().post(`${subscriptionUrl}/${completionId}/reject`, {
|
63
51
|
reject_id: rejectId,
|
64
52
|
message: rejectMessage,
|
65
|
-
}).catch(
|
53
|
+
}).catch(error => logger.error('Failed to complete failed hook action', subscriptionUrl, error));
|
66
54
|
});
|
67
55
|
};
|
68
|
-
|
69
|
-
|
70
|
-
pending.forEach(
|
56
|
+
const onSubscriptionAddSucceeded = (subscriptionId) => {
|
57
|
+
const pending = pendingSubscriptions[subscriptionId];
|
58
|
+
pending.forEach(pendingItem => pendingItem.resolver.resolve(pendingItem.removeHandler));
|
71
59
|
subscriptions[subscriptionId] = pending.length;
|
72
60
|
delete pendingSubscriptions[subscriptionId];
|
73
61
|
};
|
74
|
-
|
75
|
-
|
76
|
-
pending.forEach(
|
62
|
+
const onSubscriptionAddFailed = (subscriptionId, error) => {
|
63
|
+
const pending = pendingSubscriptions[subscriptionId];
|
64
|
+
pending.forEach(pendingItem => pendingItem.resolver.reject(error));
|
77
65
|
delete pendingSubscriptions[subscriptionId];
|
78
66
|
};
|
79
|
-
|
80
|
-
|
81
|
-
if (sendApi === void 0) { sendApi = true; }
|
82
|
-
return removeSocketListener(subscriptionUrl, subscriptionId, callback, sendApi);
|
83
|
-
};
|
67
|
+
const addPendingEntry = (subscriptionUrl, subscriptionId, callback, data) => {
|
68
|
+
const removeHandler = (sendApi = true) => removeSocketListener(subscriptionUrl, subscriptionId, callback, sendApi);
|
84
69
|
if (!subscriptions[subscriptionId]) {
|
85
70
|
if (!pendingSubscriptions[subscriptionId]) {
|
86
71
|
pendingSubscriptions[subscriptionId] = [];
|
@@ -88,77 +73,77 @@ var SocketSubscriptionHandler = function (socket, logger, _a) {
|
|
88
73
|
.post(subscriptionUrl, data)
|
89
74
|
.then(onSubscriptionAddSucceeded.bind(SocketSubscriptionHandler, subscriptionId), onSubscriptionAddFailed.bind(SocketSubscriptionHandler, subscriptionId));
|
90
75
|
}
|
91
|
-
|
76
|
+
const resolver = Promise_js_1.default.pending();
|
92
77
|
pendingSubscriptions[subscriptionId].push({
|
93
|
-
resolver
|
94
|
-
removeHandler
|
78
|
+
resolver,
|
79
|
+
removeHandler
|
95
80
|
});
|
96
81
|
return resolver.promise;
|
97
82
|
}
|
98
83
|
subscriptions[subscriptionId]++;
|
99
|
-
return
|
84
|
+
return Promise_js_1.default.resolve(removeHandler);
|
100
85
|
};
|
101
|
-
|
86
|
+
const getTotalEmitterSubscriptionCount = () => {
|
102
87
|
return Object.keys(subscriptions)
|
103
|
-
.reduce(
|
88
|
+
.reduce((reduced, name) => emitter.listenerCount(name) + reduced, 0);
|
104
89
|
};
|
105
90
|
// Public
|
106
91
|
// Listen to a specific event without sending subscription to the server
|
107
|
-
|
108
|
-
addViewUpdateListener:
|
109
|
-
|
92
|
+
const SocketSubscriptionsPublic = {
|
93
|
+
addViewUpdateListener: (viewName, callback, entityId) => {
|
94
|
+
const subscriptionId = getEmitId(`${viewName}_updated`, entityId);
|
110
95
|
emitter.on(subscriptionId, callback);
|
111
|
-
return
|
96
|
+
return () => removeLocalListener(subscriptionId, callback);
|
112
97
|
},
|
113
98
|
// Listen to a specific event and manage the API subscription automatically
|
114
|
-
addListener:
|
99
|
+
addListener: (apiModule, event, callback, entityId) => {
|
115
100
|
if (!socket().isConnected()) {
|
116
101
|
throw 'Listeners can be added only for a connected socket';
|
117
102
|
}
|
118
103
|
(0, invariant_1.default)(apiModule.indexOf('/') === -1, 'The first argument should only contain the API section without any path tokens (entity ID should be supplied separately)');
|
119
|
-
|
120
|
-
|
104
|
+
const subscriptionId = getEmitId(event, entityId);
|
105
|
+
const subscriptionUrl = getSubscriptionUrl(apiModule, entityId, event);
|
121
106
|
emitter.on(subscriptionId, callback);
|
122
107
|
return addPendingEntry(subscriptionUrl, subscriptionId, callback);
|
123
108
|
},
|
124
|
-
hasListeners:
|
109
|
+
hasListeners: () => {
|
125
110
|
return Object.keys(subscriptions).length > 0 || getTotalEmitterSubscriptionCount() > 0;
|
126
111
|
},
|
127
|
-
addHook:
|
112
|
+
addHook: (apiModule, event, callback, subscriberInfo) => {
|
128
113
|
if (!socket().isConnected()) {
|
129
114
|
throw 'Hooks can be added only for a connected socket';
|
130
115
|
}
|
131
116
|
(0, invariant_1.default)(apiModule.indexOf('/') === -1, 'The first argument should only contain the API section without any path tokens');
|
132
|
-
|
117
|
+
const subscriptionId = event;
|
133
118
|
if (subscriptions[subscriptionId] || pendingSubscriptions[subscriptionId]) {
|
134
119
|
throw 'Hook exists';
|
135
120
|
}
|
136
|
-
|
121
|
+
const subscriptionUrl = `${apiModule}/hooks/${event}`;
|
137
122
|
callback = handleHookAction.bind(SocketSubscriptionHandler, subscriptionUrl, callback);
|
138
123
|
emitter.on(subscriptionId, callback);
|
139
124
|
return addPendingEntry(subscriptionUrl, subscriptionId, callback, subscriberInfo);
|
140
125
|
},
|
141
|
-
getPendingSubscriptionCount:
|
126
|
+
getPendingSubscriptionCount: () => {
|
142
127
|
return Object.keys(pendingSubscriptions).length;
|
143
128
|
},
|
144
129
|
};
|
145
130
|
// For the socket
|
146
|
-
|
147
|
-
onSocketDisconnected
|
131
|
+
const SocketSubscriptionsInternal = {
|
132
|
+
onSocketDisconnected() {
|
148
133
|
emitter.removeAllListeners();
|
149
134
|
subscriptions = {};
|
150
135
|
},
|
151
|
-
handleMessage
|
152
|
-
|
136
|
+
handleMessage(message) {
|
137
|
+
const ignored = (0, utils_js_1.eventIgnored)(message.event, ignoredListenerEvents);
|
153
138
|
if (message.completion_id) {
|
154
139
|
if (!ignored) {
|
155
|
-
logger.verbose(message.event,
|
140
|
+
logger.verbose(message.event, `(completion id ${message.completion_id})`, message.data);
|
156
141
|
}
|
157
142
|
emitter.emit(message.event, message.data, message.completion_id);
|
158
143
|
}
|
159
144
|
else {
|
160
145
|
if (!ignored) {
|
161
|
-
logger.verbose(message.event, message.id ?
|
146
|
+
logger.verbose(message.event, message.id ? `(entity ${message.id})` : '(no entity)', message.data);
|
162
147
|
}
|
163
148
|
if (message.id) {
|
164
149
|
// There can be subscribers for a single entity or for all events of this type... emit for both
|
@@ -168,7 +153,7 @@ var SocketSubscriptionHandler = function (socket, logger, _a) {
|
|
168
153
|
}
|
169
154
|
},
|
170
155
|
};
|
171
|
-
return
|
156
|
+
return Object.assign(Object.assign({}, SocketSubscriptionsInternal), { socket: SocketSubscriptionsPublic });
|
172
157
|
};
|
173
158
|
exports.default = SocketSubscriptionHandler;
|
174
159
|
//# sourceMappingURL=SocketSubscriptionHandler.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SocketSubscriptionHandler.js","sourceRoot":"","sources":["../src/SocketSubscriptionHandler.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"SocketSubscriptionHandler.js","sourceRoot":"","sources":["../src/SocketSubscriptionHandler.ts"],"names":[],"mappings":"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"}
|
package/dist/types/api.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export
|
1
|
+
export type AuthTokenType = string;
|
2
2
|
export interface AuthenticationResponse {
|
3
3
|
auth_token: AuthTokenType;
|
4
4
|
}
|
@@ -18,7 +18,7 @@ export interface RefreshTokenAuthenticationData {
|
|
18
18
|
export interface TokenAuthenticationData {
|
19
19
|
auth_token: string;
|
20
20
|
}
|
21
|
-
export
|
21
|
+
export type FieldErrorCode = 'missing_field' | 'invalid' | 'already_exists';
|
22
22
|
export interface FieldError extends ErrorBase {
|
23
23
|
message: string;
|
24
24
|
field: string;
|
@@ -27,4 +27,4 @@ export interface FieldError extends ErrorBase {
|
|
27
27
|
export interface ErrorBase {
|
28
28
|
message: string;
|
29
29
|
}
|
30
|
-
export
|
30
|
+
export type EntityId = string | number;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
export
|
2
|
-
import { ErrorBase, FieldError, EntityId } from './api';
|
1
|
+
export type CompletionIdType = number;
|
2
|
+
import { ErrorBase, FieldError, EntityId } from './api.js';
|
3
3
|
export interface RequestResponseBase {
|
4
4
|
code: number;
|
5
5
|
callback_id: number;
|
package/dist/types/index.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
export * from './api';
|
2
|
-
export * from './logger';
|
3
|
-
export * from './requests';
|
4
|
-
export * from './subscriptions';
|
5
|
-
export * from './socket';
|
6
|
-
export * from './options';
|
7
|
-
export * from './public_helpers';
|
1
|
+
export * from './api.js';
|
2
|
+
export * from './logger.js';
|
3
|
+
export * from './requests.js';
|
4
|
+
export * from './subscriptions.js';
|
5
|
+
export * from './socket.js';
|
6
|
+
export * from './options.js';
|
7
|
+
export * from './public_helpers.js';
|
package/dist/types/index.js
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
3
|
if (k2 === undefined) k2 = k;
|
4
|
-
Object.
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
5
9
|
}) : (function(o, m, k, k2) {
|
6
10
|
if (k2 === undefined) k2 = k;
|
7
11
|
o[k2] = m[k];
|
@@ -10,11 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
11
15
|
};
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
-
__exportStar(require("./api"), exports);
|
14
|
-
__exportStar(require("./logger"), exports);
|
15
|
-
__exportStar(require("./requests"), exports);
|
16
|
-
__exportStar(require("./subscriptions"), exports);
|
17
|
-
__exportStar(require("./socket"), exports);
|
18
|
-
__exportStar(require("./options"), exports);
|
19
|
-
__exportStar(require("./public_helpers"), exports);
|
17
|
+
__exportStar(require("./api.js"), exports);
|
18
|
+
__exportStar(require("./logger.js"), exports);
|
19
|
+
__exportStar(require("./requests.js"), exports);
|
20
|
+
__exportStar(require("./subscriptions.js"), exports);
|
21
|
+
__exportStar(require("./socket.js"), exports);
|
22
|
+
__exportStar(require("./options.js"), exports);
|
23
|
+
__exportStar(require("./public_helpers.js"), exports);
|
20
24
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AAEzB,8CAA4B;AAC5B,gDAA8B;AAC9B,qDAAmC;AAEnC,8CAA4B;AAC5B,+CAA6B;AAE7B,sDAAoC"}
|