@middy/input-output-logger 2.5.5 → 2.5.6

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 +47 -53
  2. package/package.json +3 -3
package/index.js CHANGED
@@ -1,85 +1,79 @@
1
- "use strict";
2
1
 
3
2
  const defaults = {
4
- logger: data => console.log(JSON.stringify(data, null, 2)),
3
+ logger: (data) => console.log(JSON.stringify(data, null, 2)),
5
4
  awsContext: false,
6
5
  omitPaths: []
7
- };
6
+ }
8
7
 
9
8
  const inputOutputLoggerMiddleware = (opts = {}) => {
10
- let {
11
- logger,
12
- awsContext,
13
- omitPaths
14
- } = { ...defaults,
15
- ...opts
16
- };
17
- if (typeof logger !== 'function') logger = null;
9
+ let { logger, awsContext, omitPaths } = { ...defaults, ...opts }
10
+ if (typeof logger !== 'function') logger = null
18
11
 
19
12
  const omitAndLog = (param, request) => {
20
13
  const message = {
21
14
  [param]: request[param]
22
- };
23
-
15
+ }
24
16
  if (awsContext) {
25
- message.context = pick(request.context, awsContextKeys);
17
+ message.context = pick(request.context, awsContextKeys)
26
18
  }
19
+ const redactedMessage = omit(JSON.parse(JSON.stringify(message)), omitPaths) // Full clone to prevent nested mutations
20
+ logger(redactedMessage)
21
+ }
27
22
 
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;
23
+ const inputOutputLoggerMiddlewareBefore = async (request) =>
24
+ omitAndLog('event', request)
25
+ const inputOutputLoggerMiddlewareAfter = async (request) =>
26
+ omitAndLog('response', request)
27
+ const inputOutputLoggerMiddlewareOnError = inputOutputLoggerMiddlewareAfter
38
28
  return {
39
29
  before: logger ? inputOutputLoggerMiddlewareBefore : undefined,
40
30
  after: logger ? inputOutputLoggerMiddlewareAfter : undefined,
41
31
  onError: logger ? inputOutputLoggerMiddlewareOnError : undefined
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
-
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
48
50
  const pick = (originalObject = {}, keysToPick = []) => {
49
- const newObject = {};
50
-
51
+ const newObject = {}
51
52
  for (const path of keysToPick) {
52
53
  // only supports first level
53
54
  if (originalObject[path] !== undefined) {
54
- newObject[path] = originalObject[path];
55
+ newObject[path] = originalObject[path]
55
56
  }
56
57
  }
57
-
58
- return newObject;
59
- };
60
-
58
+ return newObject
59
+ }
61
60
  const omit = (originalObject = {}, keysToOmit = []) => {
62
- const clonedObject = { ...originalObject
63
- };
64
-
61
+ const clonedObject = { ...originalObject }
65
62
  for (const path of keysToOmit) {
66
- deleteKey(clonedObject, path);
63
+ deleteKey(clonedObject, path)
67
64
  }
68
-
69
- return clonedObject;
70
- };
65
+ return clonedObject
66
+ }
71
67
 
72
68
  const deleteKey = (obj, key) => {
73
- if (!Array.isArray(key)) key = key.split('.');
74
- const rootKey = key.shift();
75
-
69
+ if (!Array.isArray(key)) key = key.split('.')
70
+ const rootKey = key.shift()
76
71
  if (key.length && obj[rootKey]) {
77
- deleteKey(obj[rootKey], key);
72
+ deleteKey(obj[rootKey], key)
78
73
  } else {
79
- delete obj[rootKey];
74
+ delete obj[rootKey]
80
75
  }
76
+ return obj
77
+ }
81
78
 
82
- return obj;
83
- };
84
-
85
- module.exports = inputOutputLoggerMiddleware;
79
+ module.exports = inputOutputLoggerMiddleware
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/input-output-logger",
3
- "version": "2.5.5",
3
+ "version": "2.5.6",
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.5",
49
+ "@middy/core": "^2.5.6",
50
50
  "@types/node": "^16.0.0"
51
51
  },
52
- "gitHead": "b84840ec8afd289f6decfd0d645be4899051792d"
52
+ "gitHead": "0c789f55b4adf691f977b0d9904d1a805bb3bb2b"
53
53
  }