@middy/input-output-logger 2.5.6 → 2.5.7

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.
Files changed (2) hide show
  1. package/index.js +53 -47
  2. package/package.json +3 -3
package/index.js CHANGED
@@ -1,79 +1,85 @@
1
+ "use strict";
1
2
 
2
3
  const defaults = {
3
- logger: (data) => console.log(JSON.stringify(data, null, 2)),
4
+ logger: data => console.log(JSON.stringify(data, null, 2)),
4
5
  awsContext: false,
5
6
  omitPaths: []
6
- }
7
+ };
7
8
 
8
9
  const inputOutputLoggerMiddleware = (opts = {}) => {
9
- let { logger, awsContext, omitPaths } = { ...defaults, ...opts }
10
- if (typeof logger !== 'function') logger = null
10
+ let {
11
+ logger,
12
+ awsContext,
13
+ omitPaths
14
+ } = { ...defaults,
15
+ ...opts
16
+ };
17
+ if (typeof logger !== 'function') logger = null;
11
18
 
12
19
  const omitAndLog = (param, request) => {
13
20
  const message = {
14
21
  [param]: request[param]
15
- }
22
+ };
23
+
16
24
  if (awsContext) {
17
- message.context = pick(request.context, awsContextKeys)
25
+ message.context = pick(request.context, awsContextKeys);
18
26
  }
19
- const redactedMessage = omit(JSON.parse(JSON.stringify(message)), omitPaths) // Full clone to prevent nested mutations
20
- logger(redactedMessage)
21
- }
22
27
 
23
- const inputOutputLoggerMiddlewareBefore = async (request) =>
24
- omitAndLog('event', request)
25
- const inputOutputLoggerMiddlewareAfter = async (request) =>
26
- omitAndLog('response', request)
27
- const inputOutputLoggerMiddlewareOnError = inputOutputLoggerMiddlewareAfter
28
+ const redactedMessage = omit(JSON.parse(JSON.stringify(message)), omitPaths); // Full clone to prevent nested mutations
29
+
30
+ logger(redactedMessage);
31
+ };
32
+
33
+ const inputOutputLoggerMiddlewareBefore = async request => omitAndLog('event', request);
34
+
35
+ const inputOutputLoggerMiddlewareAfter = async request => omitAndLog('response', request);
36
+
37
+ const inputOutputLoggerMiddlewareOnError = inputOutputLoggerMiddlewareAfter;
28
38
  return {
29
39
  before: logger ? inputOutputLoggerMiddlewareBefore : undefined,
30
40
  after: logger ? inputOutputLoggerMiddlewareAfter : undefined,
31
41
  onError: logger ? inputOutputLoggerMiddlewareOnError : undefined
32
- }
33
- }
34
-
35
- // https://docs.aws.amazon.com/lambda/latest/dg/nodejs-context.html
36
- const awsContextKeys = [
37
- 'functionName',
38
- 'functionVersion',
39
- 'invokedFunctionArn',
40
- 'memoryLimitInMB',
41
- 'awsRequestId',
42
- 'logGroupName',
43
- 'logStreamName',
44
- 'identity',
45
- 'clientContext',
46
- 'callbackWaitsForEmptyEventLoop'
47
- ]
48
-
49
- // move to util, if ever used elsewhere
42
+ };
43
+ }; // https://docs.aws.amazon.com/lambda/latest/dg/nodejs-context.html
44
+
45
+
46
+ const awsContextKeys = ['functionName', 'functionVersion', 'invokedFunctionArn', 'memoryLimitInMB', 'awsRequestId', 'logGroupName', 'logStreamName', 'identity', 'clientContext', 'callbackWaitsForEmptyEventLoop']; // move to util, if ever used elsewhere
47
+
50
48
  const pick = (originalObject = {}, keysToPick = []) => {
51
- const newObject = {}
49
+ const newObject = {};
50
+
52
51
  for (const path of keysToPick) {
53
52
  // only supports first level
54
53
  if (originalObject[path] !== undefined) {
55
- newObject[path] = originalObject[path]
54
+ newObject[path] = originalObject[path];
56
55
  }
57
56
  }
58
- return newObject
59
- }
57
+
58
+ return newObject;
59
+ };
60
+
60
61
  const omit = (originalObject = {}, keysToOmit = []) => {
61
- const clonedObject = { ...originalObject }
62
+ const clonedObject = { ...originalObject
63
+ };
64
+
62
65
  for (const path of keysToOmit) {
63
- deleteKey(clonedObject, path)
66
+ deleteKey(clonedObject, path);
64
67
  }
65
- return clonedObject
66
- }
68
+
69
+ return clonedObject;
70
+ };
67
71
 
68
72
  const deleteKey = (obj, key) => {
69
- if (!Array.isArray(key)) key = key.split('.')
70
- const rootKey = key.shift()
73
+ if (!Array.isArray(key)) key = key.split('.');
74
+ const rootKey = key.shift();
75
+
71
76
  if (key.length && obj[rootKey]) {
72
- deleteKey(obj[rootKey], key)
77
+ deleteKey(obj[rootKey], key);
73
78
  } else {
74
- delete obj[rootKey]
79
+ delete obj[rootKey];
75
80
  }
76
- return obj
77
- }
78
81
 
79
- module.exports = inputOutputLoggerMiddleware
82
+ return obj;
83
+ };
84
+
85
+ module.exports = inputOutputLoggerMiddleware;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/input-output-logger",
3
- "version": "2.5.6",
3
+ "version": "2.5.7",
4
4
  "description": "Input and output logger middleware for the middy framework",
5
5
  "type": "commonjs",
6
6
  "engines": {
@@ -46,8 +46,8 @@
46
46
  },
47
47
  "homepage": "https://github.com/middyjs/middy#readme",
48
48
  "devDependencies": {
49
- "@middy/core": "^2.5.6",
49
+ "@middy/core": "^2.5.7",
50
50
  "@types/node": "^16.0.0"
51
51
  },
52
- "gitHead": "0c789f55b4adf691f977b0d9904d1a805bb3bb2b"
52
+ "gitHead": "3983c4b138e1a4d7fcb3ed805d3b8832fff06fc1"
53
53
  }