airdcpp-apisocket 3.0.0-beta.11 → 3.0.0-beta.13

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.
@@ -20,8 +20,10 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
20
20
  let socket = null;
21
21
  let reconnectTimer;
22
22
  let forceNoAutoConnect = true;
23
+ let connectCallback = null;
23
24
  let connectedCallback = null;
24
25
  let sessionResetCallback = null;
26
+ let disconnectCallback = null;
25
27
  let disconnectedCallback = null;
26
28
  const logger = SocketLogger(options);
27
29
  const subscriptions = SocketSubscriptionHandler(() => socket, logger, options);
@@ -192,6 +194,9 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
192
194
  // Authentication handler should send the actual authentication request
193
195
  const startConnect = (authenticationHandler, reconnectOnFailure) => {
194
196
  forceNoAutoConnect = false;
197
+ if (connectCallback) {
198
+ connectCallback();
199
+ }
195
200
  return new Promise((resolve, reject) => {
196
201
  logger.info(`Starting socket connect to ${userOptions.url}`);
197
202
  connectInternal(resolve, reject, authenticationHandler, reconnectOnFailure);
@@ -253,6 +258,9 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
253
258
  }
254
259
  return;
255
260
  }
261
+ if (disconnectCallback) {
262
+ disconnectCallback(reason);
263
+ }
256
264
  logger.info('Disconnecting socket');
257
265
  if (!autoConnect) {
258
266
  disableReconnect();
@@ -313,6 +321,10 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
313
321
  isActive,
314
322
  logger,
315
323
  waitDisconnected,
324
+ // Function to call each time a connect attempt is initiated
325
+ set onConnect(handler) {
326
+ connectCallback = handler;
327
+ },
316
328
  // Function to call each time the socket has been connected (and authorized)
317
329
  set onConnected(handler) {
318
330
  connectedCallback = handler;
@@ -321,16 +333,26 @@ const ApiSocket = (userOptions, WebSocketImpl) => {
321
333
  set onSessionReset(handler) {
322
334
  sessionResetCallback = handler;
323
335
  },
336
+ // Function to call each time the socket is being manually disconnected
337
+ set onDisconnect(handler) {
338
+ disconnectCallback = handler;
339
+ },
324
340
  // Function to call each time the socket has been disconnected
325
341
  set onDisconnected(handler) {
326
342
  disconnectedCallback = handler;
327
343
  },
344
+ get onConnect() {
345
+ return connectCallback;
346
+ },
328
347
  get onConnected() {
329
348
  return connectedCallback;
330
349
  },
331
350
  get onSessionReset() {
332
351
  return sessionResetCallback;
333
352
  },
353
+ get onDisconnect() {
354
+ return disconnectCallback;
355
+ },
334
356
  get onDisconnected() {
335
357
  return disconnectedCallback;
336
358
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SocketBase.js","sourceRoot":"","sources":["../src/SocketBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SocketBase.js","sourceRoot":"","sources":["../src/SocketBase.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  import { WebSocket } from 'mock-socket';
2
2
  import { OutgoingRequest, RequestSuccessResponse, RequestErrorResponse } from '../../types/api_internal.js';
3
3
  import { EventEmitter } from 'events';
4
+ import { LoggerOptions } from '../../NodeSocket.js';
4
5
  interface MockFunctionCreator {
5
6
  fn: (...args: any[]) => any;
6
7
  }
7
8
  type RequestCallback = (requestData: object) => void;
8
- interface MockServerOptions {
9
+ type DelayF = () => number;
10
+ export interface MockServerOptions {
9
11
  url: string;
10
12
  reportMissingListeners?: boolean;
11
13
  mockF: MockFunctionCreator;
14
+ delayMs: number | DelayF;
15
+ loggerOptions: LoggerOptions;
12
16
  }
13
17
  type MockRequestResponseDataObject<DataT extends object | undefined> = Omit<RequestSuccessResponse<DataT>, 'callback_id'> | Omit<RequestErrorResponse, 'callback_id'>;
14
18
  type MockRequestResponseDataHandler<DataT extends object | undefined> = (request: OutgoingRequest, s: WebSocket) => MockRequestResponseDataObject<DataT>;
@@ -1,6 +1,7 @@
1
1
  import { Server } from 'mock-socket';
2
2
  import { EventEmitter } from 'events';
3
3
  import { MOCK_SERVER_URL } from './mock-data.js';
4
+ import Logger from '../../SocketLogger.js';
4
5
  ;
5
6
  const toEmitId = (path, method) => {
6
7
  return `${path}_${method}`;
@@ -12,12 +13,18 @@ const DEFAULT_MOCK_SERVER_OPTIONS = {
12
13
  url: MOCK_SERVER_URL,
13
14
  reportMissingListeners: true,
14
15
  mockF: getDefaultMockCreatorF(),
16
+ delayMs: 0,
17
+ loggerOptions: {
18
+ logLevel: 'warn',
19
+ logOutput: console,
20
+ }
15
21
  };
16
22
  const getMockServer = (initialOptions = {}) => {
17
- const { url, reportMissingListeners, mockF } = {
23
+ const { url, reportMissingListeners, mockF, delayMs, loggerOptions } = {
18
24
  ...DEFAULT_MOCK_SERVER_OPTIONS,
19
25
  ...initialOptions,
20
26
  };
27
+ const logger = Logger(loggerOptions);
21
28
  const mockServer = new Server(url);
22
29
  let socket;
23
30
  const emitter = new EventEmitter();
@@ -28,9 +35,6 @@ const getMockServer = (initialOptions = {}) => {
28
35
  const handlers = new Map();
29
36
  const addServerHandler = (method, path, responseData, subscriptionCallback) => {
30
37
  const requestHandler = (request, s) => {
31
- if (subscriptionCallback) {
32
- subscriptionCallback(request);
33
- }
34
38
  const data = typeof responseData === 'function' ? responseData(request, s) : responseData;
35
39
  if (!data || !data.code) {
36
40
  throw new Error(`Mock server: response handler for path ${path} must return a status code`);
@@ -39,7 +43,14 @@ const getMockServer = (initialOptions = {}) => {
39
43
  callback_id: request.callback_id,
40
44
  ...data,
41
45
  };
42
- s.send(JSON.stringify(response));
46
+ const delay = typeof delayMs === 'function' ? delayMs() : delayMs;
47
+ setTimeout(() => {
48
+ logger.verbose(`Mock server: sending response for request ${request.callback_id} (${method} ${path}):`, data);
49
+ if (subscriptionCallback) {
50
+ subscriptionCallback(request);
51
+ }
52
+ s.send(JSON.stringify(response));
53
+ }, delay);
43
54
  };
44
55
  // Don't add duplicates
45
56
  const emitId = toEmitId(path, method);
@@ -86,6 +97,12 @@ const getMockServer = (initialOptions = {}) => {
86
97
  const subscribeRemove = addRequestHandler('POST', path, undefined, subscribeFn);
87
98
  const unsubscribeRemove = addRequestHandler('DELETE', path, undefined, unsubscribeFn);
88
99
  const fire = (data, entityId) => {
100
+ if (entityId) {
101
+ logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName} for entity ${entityId}:`, data);
102
+ }
103
+ else {
104
+ logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName}:`, data);
105
+ }
89
106
  send({
90
107
  event: listenerName,
91
108
  data,
@@ -119,6 +136,7 @@ const getMockServer = (initialOptions = {}) => {
119
136
  rejectRemove();
120
137
  };
121
138
  const fire = (data) => {
139
+ logger.verbose(`Mock server: firing hook ${moduleName} ${listenerName}:`, data);
122
140
  send({
123
141
  event: listenerName,
124
142
  data,
@@ -132,6 +150,10 @@ const getMockServer = (initialOptions = {}) => {
132
150
  ...subscriber,
133
151
  };
134
152
  };
153
+ const clearHandlers = () => {
154
+ emitter.removeAllListeners();
155
+ handlers.clear();
156
+ };
135
157
  mockServer.on('connection', s => {
136
158
  socket = s;
137
159
  socket.on('message', (messageObj) => {
@@ -139,10 +161,15 @@ const getMockServer = (initialOptions = {}) => {
139
161
  const emitId = toEmitId(request.path, request.method);
140
162
  const processed = emitter.emit(emitId, request, s);
141
163
  if (reportMissingListeners && !processed) {
142
- console.warn(`Mock server: no listeners for event ${request.method} ${request.path}`);
164
+ logger.warn(`Mock server: no listeners for event ${request.method} ${request.path}`);
143
165
  }
144
166
  });
145
167
  });
168
+ mockServer.on('close', () => {
169
+ // Remove handlers only after the socket was disconnected
170
+ // to allow it to complete all requests
171
+ clearHandlers();
172
+ });
146
173
  return {
147
174
  addRequestHandler,
148
175
  addErrorHandler,
@@ -150,10 +177,7 @@ const getMockServer = (initialOptions = {}) => {
150
177
  addHookHandler,
151
178
  ignoreMissingHandler: addDummyDataHandler,
152
179
  stop: () => {
153
- mockServer.stop(() => {
154
- emitter.removeAllListeners();
155
- handlers.clear();
156
- });
180
+ mockServer.stop();
157
181
  },
158
182
  send,
159
183
  url,
@@ -1 +1 @@
1
- {"version":3,"file":"mock-server.js","sourceRoot":"","sources":["../../../src/tests/mocks/mock-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,EAAa,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIhD,CAAC;AAIF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;IAChD,OAAO,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,CAAC;IACpC,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC;CACb,CAAC,CAAC;AAQH,MAAM,2BAA2B,GAAsB;IACrD,GAAG,EAAE,eAAe;IACpB,sBAAsB,EAAE,IAAI;IAC5B,KAAK,EAAE,sBAAsB,EAAE;CAChC,CAAA;AAMD,MAAM,aAAa,GAAG,CAAC,iBAA6C,EAAE,EAAE,EAAE;IACxE,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAsB;QAChE,GAAG,2BAA2B;QAC9B,GAAG,cAAc;KAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,MAAc,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,QAAQ,GAA2B,IAAI,GAAG,EAAE,CAAC;IAEnD,MAAM,gBAAgB,GAAG,CACvB,MAAc,EACd,IAAY,EACZ,YAA4C,EAC5C,oBAAsC,EACtC,EAAE;QACF,MAAM,cAAc,GAAG,CAAC,OAAwB,EAAE,CAAY,EAAE,EAAE;YAChE,IAAI,oBAAoB,EAAE,CAAC;gBACzB,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAC1F,IAAI,CAAC,IAAI,IAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,4BAA4B,CAAC,CAAC;YAC9F,CAAC;YAED,MAAM,QAAQ,GAAkD;gBAC9D,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,GAAG,IAAI;aACR,CAAC;YAEF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,uBAAuB;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,UAAU;QACV,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE5C,sBAAsB;QACtB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5E,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QACpC,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE;QAC3D,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAE,CAAY,EAAE,EAAE;YACzD,aAAa;QACf,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,WAAW,CACjB,MAAM,EACN,OAAO,CACR,CAAC;QACF,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE3B,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CACxB,MAAc,EACd,IAAY,EACZ,IAAoD,EACpD,oBAAsC,EACtC,EAAE;QACF,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SACvB,CAAA;QAED,OAAO,gBAAgB,CACrB,MAAM,EACN,IAAI,EACJ,WAAW,EACX,oBAAoB,CACrB,CAAC;IACJ,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,CACtB,MAAc,EACd,IAAY,EACZ,QAAuB,EACvB,SAAiB,EACjB,oBAAsC,EACtC,EAAE;QACF,OAAO,gBAAgB,CACrB,MAAM,EACN,IAAI,EACJ;YACE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC,CAAC;gBAC/B,OAAO,EAAE,QAAQ;aAClB;YACD,IAAI,EAAE,SAAS;SAChB,EACD,oBAAoB,CACrB,CAAC;IACJ,CAAC,CAAA;IAED,MAAM,0BAA0B,GAAG,CACjC,UAAkB,EAClB,IAAY,EACZ,YAAoB,EACpB,QAA0B,EAC1B,EAAE;QACF,MAAM,WAAW,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;QAEjC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,QAAQ,IAAI,IAAI,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,IAAI,YAAY,EAAE,CAAC;QAEtH,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAChF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAEtF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAA0B,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,KAAK,EAAE,YAAY;gBACnB,IAAI;gBACJ,EAAE,EAAE,QAAQ;aACb,CAAC,CAAC;QACL,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,OAAO;YACL,IAAI;YACJ,MAAM;YAEN,WAAW;YACX,aAAa;YAEb,IAAI;SACL,CAAA;IACH,CAAC,CAAA;IAGD,MAAM,sBAAsB,GAAG,CAC7B,UAAkB,EAClB,YAAoB,EACpB,QAA0B,EAC1B,EAAE;QACF,OAAO,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrF,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CACrB,UAAkB,EAClB,YAAoB,EACpB,EAAE;QACF,MAAM,UAAU,GAAG,0BAA0B,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;YAE5B,MAAM,aAAa,GAAG,iBAAiB,CACrC,MAAM,EACN,GAAG,UAAU,CAAC,IAAI,IAAI,YAAY,UAAU,EAC5C,SAAS,EACT,SAAS,CACV,CAAC;YAEF,MAAM,YAAY,GAAG,iBAAiB,CACpC,MAAM,EACN,GAAG,UAAU,CAAC,IAAI,IAAI,YAAY,SAAS,EAC3C,SAAS,EACT,QAAQ,CACT,CAAC;YAEF,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,aAAa,EAAE,CAAC;gBAChB,YAAY,EAAE,CAAC;YACjB,CAAC,CAAA;YAED,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC5B,IAAI,CAAC;oBACH,KAAK,EAAE,YAAY;oBACnB,IAAI;oBACJ,aAAa,EAAE,YAAY;iBAC5B,CAAC,CAAC;YACL,CAAC,CAAA;YAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC/C,CAAC,CAAC;QAEF,OAAO;YACL,WAAW;YAEX,GAAG,UAAU;SACd,CAAA;IACH,CAAC,CAAA;IAGD,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;QAC9B,MAAM,GAAG,CAAC,CAAC;QAEX,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;YAClC,MAAM,OAAO,GAAoB,IAAI,CAAC,KAAK,CAAC,UAAoB,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,sBAAsB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,iBAAiB;QACjB,eAAe;QAEf,sBAAsB;QACtB,cAAc;QAEd,oBAAoB,EAAE,mBAAmB;QACzC,IAAI,EAAE,GAAG,EAAE;YACT,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI;QACJ,GAAG;KACJ,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"mock-server.js","sourceRoot":"","sources":["../../../src/tests/mocks/mock-server.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import { AuthTokenType, LogoutResponse, AuthenticationResponse } from './api.js'
2
2
  import { Logger } from './logger.js';
3
3
  import { SocketRequestMethods } from './requests.js';
4
4
  import { SocketSubscriptions } from './subscriptions.js';
5
+ export type ConnectCallback = () => void;
5
6
  export type ConnectedCallback = (data: AuthenticationResponse) => void;
6
7
  export type SessionResetCallback = () => void;
8
+ export type DisconnectCallback = (reason: string) => void;
7
9
  export type DisconnectedCallback = (reason: string, code: number, wasClean: boolean) => void;
8
10
  export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
9
11
  connect: (username?: string, password?: string, reconnectOnFailure?: boolean) => Promise<AuthenticationResponse>;
@@ -16,8 +18,10 @@ export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
16
18
  isConnected: () => boolean;
17
19
  isActive: () => boolean;
18
20
  logger: Logger;
21
+ onConnect: ConnectCallback | null;
19
22
  onConnected: ConnectedCallback | null;
20
23
  onSessionReset: SessionResetCallback | null;
24
+ onDisconnect: DisconnectCallback | null;
21
25
  onDisconnected: DisconnectedCallback | null;
22
26
  readonly nativeSocket: WebSocket | null;
23
27
  readonly url: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "airdcpp-apisocket",
3
- "version": "3.0.0-beta.11",
3
+ "version": "3.0.0-beta.13",
4
4
  "description": "Javascript connector for AirDC++ Web API",
5
5
  "license": "MIT",
6
6
  "authors": [
package/src/SocketBase.ts CHANGED
@@ -43,8 +43,10 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
43
43
  let reconnectTimer: any;
44
44
  let forceNoAutoConnect = true;
45
45
 
46
+ let connectCallback: Socket.ConnectCallback | null = null;
46
47
  let connectedCallback: Socket.ConnectedCallback | null = null;
47
48
  let sessionResetCallback: Socket.SessionResetCallback | null = null;
49
+ let disconnectCallback: Socket.DisconnectCallback | null = null;
48
50
  let disconnectedCallback: Socket.DisconnectedCallback | null = null;
49
51
 
50
52
  const logger = SocketLogger(options);
@@ -279,6 +281,11 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
279
281
  reconnectOnFailure: boolean
280
282
  ): Promise<API.AuthenticationResponse> => {
281
283
  forceNoAutoConnect = false;
284
+
285
+ if (connectCallback) {
286
+ connectCallback();
287
+ }
288
+
282
289
  return new Promise(
283
290
  (resolve, reject) => {
284
291
  logger.info(`Starting socket connect to ${userOptions.url}`);
@@ -348,6 +355,10 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
348
355
  return;
349
356
  }
350
357
 
358
+ if (disconnectCallback) {
359
+ disconnectCallback(reason);
360
+ }
361
+
351
362
  logger.info('Disconnecting socket');
352
363
 
353
364
  if (!autoConnect) {
@@ -427,6 +438,11 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
427
438
  logger,
428
439
  waitDisconnected,
429
440
 
441
+ // Function to call each time a connect attempt is initiated
442
+ set onConnect(handler: Socket.ConnectCallback) {
443
+ connectCallback = handler;
444
+ },
445
+
430
446
  // Function to call each time the socket has been connected (and authorized)
431
447
  set onConnected(handler: Socket.ConnectedCallback) {
432
448
  connectedCallback = handler;
@@ -437,11 +453,20 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
437
453
  sessionResetCallback = handler;
438
454
  },
439
455
 
456
+ // Function to call each time the socket is being manually disconnected
457
+ set onDisconnect(handler: Socket.DisconnectCallback) {
458
+ disconnectCallback = handler;
459
+ },
460
+
440
461
  // Function to call each time the socket has been disconnected
441
462
  set onDisconnected(handler: Socket.DisconnectedCallback) {
442
463
  disconnectedCallback = handler;
443
464
  },
444
465
 
466
+ get onConnect() {
467
+ return connectCallback!;
468
+ },
469
+
445
470
  get onConnected() {
446
471
  return connectedCallback!;
447
472
  },
@@ -450,6 +475,10 @@ const ApiSocket = (userOptions: Options.APISocketOptions, WebSocketImpl: WebSock
450
475
  return sessionResetCallback!;
451
476
  },
452
477
 
478
+ get onDisconnect() {
479
+ return disconnectCallback!;
480
+ },
481
+
453
482
  get onDisconnected() {
454
483
  return disconnectedCallback!;
455
484
  },
@@ -248,6 +248,7 @@ describe('socket', () => {
248
248
  jest.runOnlyPendingTimers();
249
249
  jest.runOnlyPendingTimers();
250
250
  jest.runOnlyPendingTimers();
251
+ jest.runOnlyPendingTimers();
251
252
 
252
253
  expect(socket.isConnected()).toEqual(true);
253
254
  expect(mockConsole.warn.mock.calls.length).toBe(0);
@@ -312,9 +313,7 @@ describe('socket', () => {
312
313
  const connectErrorCallback = jest.fn();
313
314
 
314
315
  // Connect and disconnect
315
- const { socket } = await getConnectedMockSocket({
316
- authCallback,
317
- });
316
+ const { socket } = await getConnectedMockSocket();
318
317
 
319
318
  jest.useFakeTimers();
320
319
  socket.disconnect();
@@ -325,11 +324,13 @@ describe('socket', () => {
325
324
  // and connect with credentials afterwards
326
325
  server.addErrorHandler('POST', ApiConstants.CONNECT_URL, ErrorResponse, 400, connectErrorCallback);
327
326
 
327
+ server.addRequestHandler('POST', ApiConstants.LOGIN_URL, DEFAULT_AUTH_RESPONSE, authCallback);
328
+
328
329
  jest.runOnlyPendingTimers();
329
330
  socket.reconnect();
330
331
 
331
332
  await jest.advanceTimersByTimeAsync(1000);
332
- expect(authCallback.mock.calls.length).toBe(2);
333
+ expect(authCallback.mock.calls.length).toBe(1);
333
334
  expect(connectErrorCallback.mock.calls.length).toBe(1);
334
335
 
335
336
  expect(socket.isConnected()).toEqual(true);
@@ -4,6 +4,9 @@ import { OutgoingRequest, RequestSuccessResponse, RequestErrorResponse } from '.
4
4
  import { EventEmitter } from 'events';
5
5
  import { MOCK_SERVER_URL } from './mock-data.js';
6
6
 
7
+ import Logger from '../../SocketLogger.js';
8
+ import { LoggerOptions } from '../../NodeSocket.js';
9
+
7
10
  interface MockFunctionCreator {
8
11
  fn: (...args: any[]) => any;
9
12
  };
@@ -18,16 +21,25 @@ const getDefaultMockCreatorF = () => ({
18
21
  fn: () => {},
19
22
  });
20
23
 
21
- interface MockServerOptions {
24
+ type DelayF = () => number;
25
+
26
+ export interface MockServerOptions {
22
27
  url: string;
23
28
  reportMissingListeners?: boolean;
24
29
  mockF: MockFunctionCreator;
30
+ delayMs: number | DelayF;
31
+ loggerOptions: LoggerOptions;
25
32
  }
26
33
 
27
34
  const DEFAULT_MOCK_SERVER_OPTIONS: MockServerOptions = {
28
35
  url: MOCK_SERVER_URL,
29
36
  reportMissingListeners: true,
30
37
  mockF: getDefaultMockCreatorF(),
38
+ delayMs: 0,
39
+ loggerOptions: {
40
+ logLevel: 'warn',
41
+ logOutput: console,
42
+ }
31
43
  }
32
44
 
33
45
  type MockRequestResponseDataObject<DataT extends object | undefined> = Omit<RequestSuccessResponse<DataT>, 'callback_id'> | Omit<RequestErrorResponse, 'callback_id'>;
@@ -35,11 +47,12 @@ type MockRequestResponseDataHandler<DataT extends object | undefined> = (request
35
47
  type MockRequestResponseData<DataT extends object | undefined> = MockRequestResponseDataObject<DataT> | MockRequestResponseDataHandler<DataT>;
36
48
 
37
49
  const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
38
- const { url, reportMissingListeners, mockF }: MockServerOptions = {
50
+ const { url, reportMissingListeners, mockF, delayMs, loggerOptions }: MockServerOptions = {
39
51
  ...DEFAULT_MOCK_SERVER_OPTIONS,
40
52
  ...initialOptions,
41
53
  };
42
54
 
55
+ const logger = Logger(loggerOptions);
43
56
  const mockServer = new Server(url);
44
57
  let socket: Client;
45
58
  const emitter = new EventEmitter();
@@ -58,10 +71,6 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
58
71
  subscriptionCallback?: RequestCallback,
59
72
  ) => {
60
73
  const requestHandler = (request: OutgoingRequest, s: WebSocket) => {
61
- if (subscriptionCallback) {
62
- subscriptionCallback(request);
63
- }
64
-
65
74
  const data = typeof responseData === 'function' ? responseData(request, s) : responseData;
66
75
  if (!data ||!data.code) {
67
76
  throw new Error(`Mock server: response handler for path ${path} must return a status code`);
@@ -72,7 +81,15 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
72
81
  ...data,
73
82
  };
74
83
 
75
- s.send(JSON.stringify(response));
84
+ const delay = typeof delayMs === 'function' ? delayMs() : delayMs;
85
+ setTimeout(() => {
86
+ logger.verbose(`Mock server: sending response for request ${request.callback_id} (${method} ${path}):`, data);
87
+ if (subscriptionCallback) {
88
+ subscriptionCallback(request);
89
+ }
90
+
91
+ s.send(JSON.stringify(response));
92
+ }, delay);
76
93
  };
77
94
 
78
95
  // Don't add duplicates
@@ -161,6 +178,12 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
161
178
  const unsubscribeRemove = addRequestHandler('DELETE', path, undefined, unsubscribeFn);
162
179
 
163
180
  const fire = (data: object, entityId?: string | number) => {
181
+ if (entityId) {
182
+ logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName} for entity ${entityId}:`, data);
183
+ } else {
184
+ logger.verbose(`Mock server: firing subscriber ${moduleName} ${listenerName}:`, data);
185
+ }
186
+
164
187
  send({
165
188
  event: listenerName,
166
189
  data,
@@ -223,6 +246,7 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
223
246
  }
224
247
 
225
248
  const fire = (data: object) => {
249
+ logger.verbose(`Mock server: firing hook ${moduleName} ${listenerName}:`, data);
226
250
  send({
227
251
  event: listenerName,
228
252
  data,
@@ -240,6 +264,10 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
240
264
  }
241
265
  }
242
266
 
267
+ const clearHandlers = () => {
268
+ emitter.removeAllListeners();
269
+ handlers.clear();
270
+ }
243
271
 
244
272
  mockServer.on('connection', s => {
245
273
  socket = s;
@@ -249,11 +277,17 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
249
277
  const emitId = toEmitId(request.path, request.method);
250
278
  const processed = emitter.emit(emitId, request, s);
251
279
  if (reportMissingListeners && !processed) {
252
- console.warn(`Mock server: no listeners for event ${request.method} ${request.path}`);
280
+ logger.warn(`Mock server: no listeners for event ${request.method} ${request.path}`);
253
281
  }
254
282
  });
255
283
  });
256
284
 
285
+ mockServer.on('close', () => {
286
+ // Remove handlers only after the socket was disconnected
287
+ // to allow it to complete all requests
288
+ clearHandlers();
289
+ });
290
+
257
291
  return {
258
292
  addRequestHandler,
259
293
  addErrorHandler,
@@ -263,10 +297,7 @@ const getMockServer = (initialOptions: Partial<MockServerOptions> = {}) => {
263
297
 
264
298
  ignoreMissingHandler: addDummyDataHandler,
265
299
  stop: () => {
266
- mockServer.stop(() => {
267
- emitter.removeAllListeners();
268
- handlers.clear();
269
- });
300
+ mockServer.stop();
270
301
  },
271
302
  send,
272
303
  url,
@@ -4,8 +4,10 @@ import { SocketRequestMethods } from './requests.js';
4
4
  import { SocketSubscriptions } from './subscriptions.js';
5
5
 
6
6
 
7
+ export type ConnectCallback = () => void;
7
8
  export type ConnectedCallback = (data: AuthenticationResponse) => void;
8
9
  export type SessionResetCallback = () => void;
10
+ export type DisconnectCallback = (reason: string) => void;
9
11
  export type DisconnectedCallback = (reason: string, code: number, wasClean: boolean) => void;
10
12
 
11
13
  export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
@@ -22,9 +24,13 @@ export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
22
24
 
23
25
  logger: Logger;
24
26
 
27
+ onConnect: ConnectCallback | null;
25
28
  onConnected: ConnectedCallback | null;
29
+
26
30
  onSessionReset: SessionResetCallback | null;
31
+ onDisconnect: DisconnectCallback | null;
27
32
  onDisconnected: DisconnectedCallback | null;
33
+
28
34
  readonly nativeSocket: WebSocket | null;
29
35
  readonly url: string;
30
36
  }