serverless-spy 0.0.35 → 0.0.36

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.
@@ -13,7 +13,11 @@ export declare enum envVariableNames {
13
13
  SSPY_WS_ENDPOINT = "SSPY_WS_ENDPOINT",
14
14
  SSPY_FUNCTION_NAME = "SSPY_FUNCTION_NAME",
15
15
  /**
16
- *DynamoDB table name that stores active websocket connections.
16
+ * DynamoDB table name that stores active websocket connections.
17
17
  */
18
- SSPY_WS_TABLE_NAME = "SSPY_WS_TABLE_NAME"
18
+ SSPY_WS_TABLE_NAME = "SSPY_WS_TABLE_NAME",
19
+ /**
20
+ * Log debugging details.
21
+ */
22
+ SSPY_DEBUG = "SSPY_DEBUG"
19
23
  }
@@ -19,8 +19,12 @@ var envVariableNames;
19
19
  envVariableNames["SSPY_WS_ENDPOINT"] = "SSPY_WS_ENDPOINT";
20
20
  envVariableNames["SSPY_FUNCTION_NAME"] = "SSPY_FUNCTION_NAME";
21
21
  /**
22
- *DynamoDB table name that stores active websocket connections.
22
+ * DynamoDB table name that stores active websocket connections.
23
23
  */
24
24
  envVariableNames["SSPY_WS_TABLE_NAME"] = "SSPY_WS_TABLE_NAME";
25
+ /**
26
+ * Log debugging details.
27
+ */
28
+ envVariableNames["SSPY_DEBUG"] = "SSPY_DEBUG";
25
29
  })(envVariableNames = exports.envVariableNames || (exports.envVariableNames = {}));
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52VmFyaWFibGVOYW1lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vZW52VmFyaWFibGVOYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEVBQTBFO0FBQzFFLG9EQUFvRDs7O0FBRXBELElBQVksZ0JBc0JYO0FBdEJELFdBQVksZ0JBQWdCO0lBQzFCOztPQUVHO0lBQ0gscUVBQWlELENBQUE7SUFFakQ7O09BRUc7SUFDSCw2REFBeUMsQ0FBQTtJQUV6Qzs7T0FFRztJQUNILHlEQUFxQyxDQUFBO0lBRXJDLDZEQUF5QyxDQUFBO0lBRXpDOztPQUVHO0lBQ0gsNkRBQXlDLENBQUE7QUFDM0MsQ0FBQyxFQXRCVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQXNCM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvL3RoaXMgZmlsZSBpcyBub3QgdW5kZXIgcm9vdCAtPiBjb21tb24gZm9sZGVyIGJlY2F1c2UganNpaSBkb2VzIG5vdCBhbGxvd1xuLy9jaGFuZ2luZyB0c2NvbmZpbmcuanNvbiB0byByZW1vdmUgcm9vdERpciBwcm9wZXJ0eVxuXG5leHBvcnQgZW51bSBlbnZWYXJpYWJsZU5hbWVzIHtcbiAgLyoqXG4gICAqIE5vdGUgdGhhdCB0aGUgZnVuY3Rpb24gaXMgc3Vic2NyaWJlZCB0byBTUVMsIHNvIHdlIG5lZWQgdG8gc2VuZCBzcHkgZXZlbnRzIGFzIGl0IGNvbWVzIGZyb20gU1FTLlxuICAgKi9cbiAgU1NQWV9TVUJTQ1JJQkVEX1RPX1NRUyA9ICdTU1BZX1NVQlNDUklCRURfVE9fU1FTJyxcblxuICAvKipcbiAgICogTWFwcGluZyBvZiByZXNvdXJjZSBBUk5zIHRvIHNlcnZpY2Uga2V5c1xuICAgKi9cbiAgU1NQWV9JTkZSQV9NQVBQSU5HID0gJ1NTUFlfSU5GUkFfTUFQUElORycsXG5cbiAgLyoqXG4gICAqIFdlYiBzb2NrZXQgZW5kcG9pbnQgZm9yIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBzcHkgZXZlbnRzLlxuICAgKi9cbiAgU1NQWV9XU19FTkRQT0lOVCA9ICdTU1BZX1dTX0VORFBPSU5UJyxcblxuICBTU1BZX0ZVTkNUSU9OX05BTUUgPSAnU1NQWV9GVU5DVElPTl9OQU1FJyxcblxuICAvKipcbiAgICpEeW5hbW9EQiB0YWJsZSBuYW1lIHRoYXQgc3RvcmVzIGFjdGl2ZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMuXG4gICAqL1xuICBTU1BZX1dTX1RBQkxFX05BTUUgPSAnU1NQWV9XU19UQUJMRV9OQU1FJyxcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52VmFyaWFibGVOYW1lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vZW52VmFyaWFibGVOYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEVBQTBFO0FBQzFFLG9EQUFvRDs7O0FBRXBELElBQVksZ0JBMkJYO0FBM0JELFdBQVksZ0JBQWdCO0lBQzFCOztPQUVHO0lBQ0gscUVBQWlELENBQUE7SUFFakQ7O09BRUc7SUFDSCw2REFBeUMsQ0FBQTtJQUV6Qzs7T0FFRztJQUNILHlEQUFxQyxDQUFBO0lBRXJDLDZEQUF5QyxDQUFBO0lBRXpDOztPQUVHO0lBQ0gsNkRBQXlDLENBQUE7SUFFekM7O09BRUc7SUFDSCw2Q0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBM0JXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBMkIzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vdGhpcyBmaWxlIGlzIG5vdCB1bmRlciByb290IC0+IGNvbW1vbiBmb2xkZXIgYmVjYXVzZSBqc2lpIGRvZXMgbm90IGFsbG93XG4vL2NoYW5naW5nIHRzY29uZmluZy5qc29uIHRvIHJlbW92ZSByb290RGlyIHByb3BlcnR5XG5cbmV4cG9ydCBlbnVtIGVudlZhcmlhYmxlTmFtZXMge1xuICAvKipcbiAgICogTm90ZSB0aGF0IHRoZSBmdW5jdGlvbiBpcyBzdWJzY3JpYmVkIHRvIFNRUywgc28gd2UgbmVlZCB0byBzZW5kIHNweSBldmVudHMgYXMgaXQgY29tZXMgZnJvbSBTUVMuXG4gICAqL1xuICBTU1BZX1NVQlNDUklCRURfVE9fU1FTID0gJ1NTUFlfU1VCU0NSSUJFRF9UT19TUVMnLFxuXG4gIC8qKlxuICAgKiBNYXBwaW5nIG9mIHJlc291cmNlIEFSTnMgdG8gc2VydmljZSBrZXlzXG4gICAqL1xuICBTU1BZX0lORlJBX01BUFBJTkcgPSAnU1NQWV9JTkZSQV9NQVBQSU5HJyxcblxuICAvKipcbiAgICogV2ViIHNvY2tldCBlbmRwb2ludCBmb3Igc2VuZGluZyBhbmQgcmVjZWl2aW5nIHNweSBldmVudHMuXG4gICAqL1xuICBTU1BZX1dTX0VORFBPSU5UID0gJ1NTUFlfV1NfRU5EUE9JTlQnLFxuXG4gIFNTUFlfRlVOQ1RJT05fTkFNRSA9ICdTU1BZX0ZVTkNUSU9OX05BTUUnLFxuXG4gIC8qKlxuICAgKiBEeW5hbW9EQiB0YWJsZSBuYW1lIHRoYXQgc3RvcmVzIGFjdGl2ZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMuXG4gICAqL1xuICBTU1BZX1dTX1RBQkxFX05BTUUgPSAnU1NQWV9XU19UQUJMRV9OQU1FJyxcblxuICAvKipcbiAgICogTG9nIGRlYnVnZ2luZyBkZXRhaWxzLlxuICAgKi9cbiAgU1NQWV9ERUJVRyA9ICdTU1BZX0RFQlVHJyxcbn1cbiJdfQ==
@@ -16,8 +16,12 @@ export var envVariableNames;
16
16
  envVariableNames["SSPY_WS_ENDPOINT"] = "SSPY_WS_ENDPOINT";
17
17
  envVariableNames["SSPY_FUNCTION_NAME"] = "SSPY_FUNCTION_NAME";
18
18
  /**
19
- *DynamoDB table name that stores active websocket connections.
19
+ * DynamoDB table name that stores active websocket connections.
20
20
  */
21
21
  envVariableNames["SSPY_WS_TABLE_NAME"] = "SSPY_WS_TABLE_NAME";
22
+ /**
23
+ * Log debugging details.
24
+ */
25
+ envVariableNames["SSPY_DEBUG"] = "SSPY_DEBUG";
22
26
  })(envVariableNames || (envVariableNames = {}));
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52VmFyaWFibGVOYW1lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vZW52VmFyaWFibGVOYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFDMUUsb0RBQW9EO0FBRXBELE1BQU0sQ0FBTixJQUFZLGdCQXNCWDtBQXRCRCxXQUFZLGdCQUFnQjtJQUMxQjs7T0FFRztJQUNILHFFQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsNkRBQXlDLENBQUE7SUFFekM7O09BRUc7SUFDSCx5REFBcUMsQ0FBQTtJQUVyQyw2REFBeUMsQ0FBQTtJQUV6Qzs7T0FFRztJQUNILDZEQUF5QyxDQUFBO0FBQzNDLENBQUMsRUF0QlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQXNCM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvL3RoaXMgZmlsZSBpcyBub3QgdW5kZXIgcm9vdCAtPiBjb21tb24gZm9sZGVyIGJlY2F1c2UganNpaSBkb2VzIG5vdCBhbGxvd1xuLy9jaGFuZ2luZyB0c2NvbmZpbmcuanNvbiB0byByZW1vdmUgcm9vdERpciBwcm9wZXJ0eVxuXG5leHBvcnQgZW51bSBlbnZWYXJpYWJsZU5hbWVzIHtcbiAgLyoqXG4gICAqIE5vdGUgdGhhdCB0aGUgZnVuY3Rpb24gaXMgc3Vic2NyaWJlZCB0byBTUVMsIHNvIHdlIG5lZWQgdG8gc2VuZCBzcHkgZXZlbnRzIGFzIGl0IGNvbWVzIGZyb20gU1FTLlxuICAgKi9cbiAgU1NQWV9TVUJTQ1JJQkVEX1RPX1NRUyA9ICdTU1BZX1NVQlNDUklCRURfVE9fU1FTJyxcblxuICAvKipcbiAgICogTWFwcGluZyBvZiByZXNvdXJjZSBBUk5zIHRvIHNlcnZpY2Uga2V5c1xuICAgKi9cbiAgU1NQWV9JTkZSQV9NQVBQSU5HID0gJ1NTUFlfSU5GUkFfTUFQUElORycsXG5cbiAgLyoqXG4gICAqIFdlYiBzb2NrZXQgZW5kcG9pbnQgZm9yIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBzcHkgZXZlbnRzLlxuICAgKi9cbiAgU1NQWV9XU19FTkRQT0lOVCA9ICdTU1BZX1dTX0VORFBPSU5UJyxcblxuICBTU1BZX0ZVTkNUSU9OX05BTUUgPSAnU1NQWV9GVU5DVElPTl9OQU1FJyxcblxuICAvKipcbiAgICpEeW5hbW9EQiB0YWJsZSBuYW1lIHRoYXQgc3RvcmVzIGFjdGl2ZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMuXG4gICAqL1xuICBTU1BZX1dTX1RBQkxFX05BTUUgPSAnU1NQWV9XU19UQUJMRV9OQU1FJyxcbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52VmFyaWFibGVOYW1lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vZW52VmFyaWFibGVOYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFDMUUsb0RBQW9EO0FBRXBELE1BQU0sQ0FBTixJQUFZLGdCQTJCWDtBQTNCRCxXQUFZLGdCQUFnQjtJQUMxQjs7T0FFRztJQUNILHFFQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsNkRBQXlDLENBQUE7SUFFekM7O09BRUc7SUFDSCx5REFBcUMsQ0FBQTtJQUVyQyw2REFBeUMsQ0FBQTtJQUV6Qzs7T0FFRztJQUNILDZEQUF5QyxDQUFBO0lBRXpDOztPQUVHO0lBQ0gsNkNBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQTNCVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBMkIzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vdGhpcyBmaWxlIGlzIG5vdCB1bmRlciByb290IC0+IGNvbW1vbiBmb2xkZXIgYmVjYXVzZSBqc2lpIGRvZXMgbm90IGFsbG93XG4vL2NoYW5naW5nIHRzY29uZmluZy5qc29uIHRvIHJlbW92ZSByb290RGlyIHByb3BlcnR5XG5cbmV4cG9ydCBlbnVtIGVudlZhcmlhYmxlTmFtZXMge1xuICAvKipcbiAgICogTm90ZSB0aGF0IHRoZSBmdW5jdGlvbiBpcyBzdWJzY3JpYmVkIHRvIFNRUywgc28gd2UgbmVlZCB0byBzZW5kIHNweSBldmVudHMgYXMgaXQgY29tZXMgZnJvbSBTUVMuXG4gICAqL1xuICBTU1BZX1NVQlNDUklCRURfVE9fU1FTID0gJ1NTUFlfU1VCU0NSSUJFRF9UT19TUVMnLFxuXG4gIC8qKlxuICAgKiBNYXBwaW5nIG9mIHJlc291cmNlIEFSTnMgdG8gc2VydmljZSBrZXlzXG4gICAqL1xuICBTU1BZX0lORlJBX01BUFBJTkcgPSAnU1NQWV9JTkZSQV9NQVBQSU5HJyxcblxuICAvKipcbiAgICogV2ViIHNvY2tldCBlbmRwb2ludCBmb3Igc2VuZGluZyBhbmQgcmVjZWl2aW5nIHNweSBldmVudHMuXG4gICAqL1xuICBTU1BZX1dTX0VORFBPSU5UID0gJ1NTUFlfV1NfRU5EUE9JTlQnLFxuXG4gIFNTUFlfRlVOQ1RJT05fTkFNRSA9ICdTU1BZX0ZVTkNUSU9OX05BTUUnLFxuXG4gIC8qKlxuICAgKiBEeW5hbW9EQiB0YWJsZSBuYW1lIHRoYXQgc3RvcmVzIGFjdGl2ZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMuXG4gICAqL1xuICBTU1BZX1dTX1RBQkxFX05BTUUgPSAnU1NQWV9XU19UQUJMRV9OQU1FJyxcblxuICAvKipcbiAgICogTG9nIGRlYnVnZ2luZyBkZXRhaWxzLlxuICAgKi9cbiAgU1NQWV9ERUJVRyA9ICdTU1BZX0RFQlVHJyxcbn1cbiJdfQ==
@@ -3,4 +3,5 @@ import { Credentials } from '@aws-sdk/types';
3
3
  export type ServerlessSpyListenerParams = {
4
4
  serverlessSpyWsUrl: string;
5
5
  credentials?: Credentials;
6
+ debugMode?: boolean;
6
7
  };
@@ -16,8 +16,11 @@ export class WsListener<TSpyEvents> {
16
16
  private ws?: WebSocket;
17
17
  private closed = true;
18
18
  private functionPrefix = 'waitFor';
19
+ private debugMode = false;
20
+
21
+ public async start(params: ServerlessSpyListenerParams) {
22
+ this.debugMode = !!params.debugMode;
19
23
 
20
- async start(params: ServerlessSpyListenerParams) {
21
24
  this.waitForConnection = new Promise((resolve) => {
22
25
  this.connectionOpenResolve = resolve;
23
26
  });
@@ -30,11 +33,14 @@ export class WsListener<TSpyEvents> {
30
33
  this.ws = new WebSocket(urlSigned);
31
34
  this.closed = false;
32
35
  this.ws.on('open', () => {
36
+ this.log('Connection oppened');
33
37
  this.connectionOpenResolve!();
34
38
  });
35
39
  this.ws.on('message', (data) => {
36
40
  if (this.closed) return;
37
41
 
42
+ this.log('Message received', data);
43
+
38
44
  const message = JSON.parse(data.toString()) as SpyMessageStorage;
39
45
 
40
46
  message.serviceKeyForFunction = message.serviceKey.replace(/#/g, '');
@@ -49,19 +55,20 @@ export class WsListener<TSpyEvents> {
49
55
  this.resolveOldTrackerWithNewMessage(message);
50
56
  });
51
57
  this.ws.on('close', () => {
58
+ this.log('Connection closed');
59
+
52
60
  this.closed = true;
53
- //console.log('disconnected ' + new Date().toISOString());
54
61
  });
55
62
 
56
63
  await this.waitForConnection;
57
64
  }
58
65
 
59
- async stop() {
66
+ public async stop() {
60
67
  this.closed = true;
61
68
  this.ws!.close();
62
69
  }
63
70
 
64
- trackerMatchMessage(tracker: Tracker, message: SpyMessageStorage) {
71
+ private trackerMatchMessage(tracker: Tracker, message: SpyMessageStorage) {
65
72
  if (tracker.finished) return;
66
73
 
67
74
  if (
@@ -179,7 +186,7 @@ export class WsListener<TSpyEvents> {
179
186
  }
180
187
  }
181
188
 
182
- public createWaitForXXXFunc(
189
+ private createWaitForXXXFunc(
183
190
  serviceKeyForFunction: string,
184
191
  functionContextAwsRequestId?: string
185
192
  ) {
@@ -195,7 +202,6 @@ export class WsListener<TSpyEvents> {
195
202
  };
196
203
  });
197
204
 
198
- //waitForXXXFunc
199
205
  return (paramsW?: WaitForParams<SpyEvent>) => {
200
206
  tracker.condition = paramsW?.condition;
201
207
 
@@ -253,6 +259,12 @@ export class WsListener<TSpyEvents> {
253
259
 
254
260
  return proxy as ServerlessSpyListener<TSpyEvents>;
255
261
  }
262
+
263
+ private log(message: string, ...optionalParams: any[]) {
264
+ if (this.debugMode) {
265
+ console.debug('SSPY', message, ...optionalParams);
266
+ }
267
+ }
256
268
  }
257
269
 
258
270
  type Tracker = {
package/package.json CHANGED
@@ -116,7 +116,7 @@
116
116
  "require": "./lib/index.js"
117
117
  },
118
118
  "license": "Apache-2.0",
119
- "version": "0.0.35",
119
+ "version": "0.0.36",
120
120
  "types": "lib/index.d.ts",
121
121
  "stability": "stable",
122
122
  "jsii": {