@vita-mojo/lambda-logger 0.0.45 → 0.0.46-VMOS-14435-707bfce-34-rc.0

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/package.json CHANGED
@@ -1,6 +1,11 @@
1
1
  {
2
2
  "name": "@vita-mojo/lambda-logger",
3
- "version": "0.0.45",
3
+ "version": "0.0.46-VMOS-14435-707bfce-34-rc.0",
4
4
  "type": "commonjs",
5
+ "dependencies": {
6
+ "tslib": "^2.8.1",
7
+ "lambda-log": "^3.1.0"
8
+ },
9
+ "types": "./src/index.d.ts",
5
10
  "main": "./src/index.js"
6
- }
11
+ }
@@ -2,7 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lambdaLogger = exports.LambdaLogger = void 0;
4
4
  const log = require("lambda-log");
5
- const R = require("ramda");
5
+ /**
6
+ * Replaces `R.isEmpty`.
7
+ *
8
+ * Deliberately narrower than "has no own enumerable keys". Only strings,
9
+ * arrays, plain objects, `arguments` and typed arrays have an empty form;
10
+ * every other object counts as NOT empty. An Error has no own enumerable keys,
11
+ * so `Object.keys(err).length === 0` would call it empty and drop the payload
12
+ * - and `error(msg: string | Error, meta?: object)` invites exactly that call.
13
+ * Losing an error from an error log is the worst failure this file can have.
14
+ */
15
+ const isEmptyPayload = (value) => {
16
+ if (typeof value === 'string' || Array.isArray(value))
17
+ return value.length === 0;
18
+ if (typeof value !== 'object' || value === null)
19
+ return false;
20
+ const tag = Object.prototype.toString.call(value);
21
+ if (tag === '[object Object]')
22
+ return Object.keys(value).length === 0;
23
+ if (ArrayBuffer.isView(value))
24
+ return value.byteLength === 0;
25
+ if (tag === '[object Arguments]')
26
+ return value.length === 0;
27
+ return false;
28
+ };
6
29
  class LambdaLogger extends log.LambdaLog {
7
30
  constructor(options) {
8
31
  super(options);
@@ -20,7 +43,14 @@ class LambdaLogger extends log.LambdaLog {
20
43
  this.updateMeta({ data: Object.assign(Object.assign({}, this.options.meta.data), dataFields) });
21
44
  }
22
45
  log(level, msg, data, tags = []) {
23
- if (R.isEmpty(data)) {
46
+ // The undefined check matters as much as the emptiness one. `data` is
47
+ // optional, and an omitted argument used to fall through to the branch
48
+ // below, where lambda-log merged `{ data: undefined }` over the meta --
49
+ // silently erasing anything setData/updateData had established. Passing
50
+ // `{}` preserved it, so omitting the argument behaved WORSE than passing
51
+ // an empty one. null is covered too, for JavaScript callers the optional
52
+ // type does not constrain.
53
+ if (data === undefined || data === null || isEmptyPayload(data)) {
24
54
  return super.log(level, msg, {}, tags);
25
55
  }
26
56
  return super.log(level, msg, { data }, tags);
@@ -1 +1 @@
1
- {"version":3,"file":"lambda-logger.js","sourceRoot":"","sources":["../../../../../packages/lambda-logger/src/lib/lambda-logger.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,2BAA2B;AAI3B,MAAa,YAAa,SAAQ,GAAG,CAAC,SAAS;IAC7C,YAAY,OAA4B;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAyB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,UAA+B;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,mCAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,GAAK,UAAU,CAAE,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,IAAyB;QAC/B,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,UAA+B;QACxC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,kCAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAK,UAAU,CAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEQ,GAAG,CAAC,KAAa,EAAE,GAAQ,EAAE,IAA0B,EAAE,IAAI,GAAG,EAAE;QACzE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF;AA5BD,oCA4BC;AAED,MAAM,OAAO,GAAG;IACd,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEW,QAAA,YAAY,GAAkB,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"lambda-logger.js","sourceRoot":"","sources":["../../../../../packages/lambda-logger/src/lib/lambda-logger.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAIlC;;;;;;;;;GASG;AACH,MAAM,cAAc,GAAG,CAAC,KAAc,EAAW,EAAE;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACtE,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC;IAC7D,IAAI,GAAG,KAAK,oBAAoB;QAC9B,OAAQ,KAA4B,CAAC,MAAM,KAAK,CAAC,CAAC;IAEpD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAa,YAAa,SAAQ,GAAG,CAAC,SAAS;IAC7C,YAAY,OAA4B;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAyB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,UAA+B;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,mCAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,GAAK,UAAU,CAAE,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,IAAyB;QAC/B,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,UAA+B;QACxC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,kCAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAK,UAAU,CAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEQ,GAAG,CAAC,KAAa,EAAE,GAAQ,EAAE,IAA0B,EAAE,IAAI,GAAG,EAAE;QACzE,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,2BAA2B;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF;AAnCD,oCAmCC;AAED,MAAM,OAAO,GAAG;IACd,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEW,QAAA,YAAY,GAAkB,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC"}