@leaflink/snitch 0.0.0-PR-53--b0ed16b → 0.0.0-PR-54--a85b8ad

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.
@@ -1,3 +1,22 @@
1
+ function isEmpty(obj) {
2
+ if (obj === null || obj === undefined || !obj) {
3
+ return true;
4
+ }
5
+ for (const prop in obj) {
6
+ if (Object.hasOwn(obj, prop)) {
7
+ return false;
8
+ }
9
+ }
10
+ return true;
11
+ }
12
+ /**
13
+ * Wraps the meta object to avoid our custom meta properties mixing with datadog's built-in properties
14
+ * @param meta - The meta object to wrap
15
+ * @returns The wrapped meta object
16
+ */
17
+ function wrapMeta(meta) {
18
+ return isEmpty(meta) ? {} : { extra: meta };
19
+ }
1
20
  export class DatadogTransport {
2
21
  level;
3
22
  log;
@@ -7,18 +26,18 @@ export class DatadogTransport {
7
26
  // LogLevel maps directly to datadogLogsInstance logger methods
8
27
  if (message instanceof Error) {
9
28
  // Datadog logger has an optional third error param for exception handling
10
- opts.datadogLogsInstance.logger[level](message.message, meta, message);
29
+ opts.datadogLogsInstance.logger[level](message.message, wrapMeta(meta), message);
11
30
  }
12
31
  else if (typeof message === 'string' && meta instanceof Error) {
13
32
  opts.datadogLogsInstance.logger[level](message, {}, meta);
14
33
  }
15
34
  else if (typeof message === 'string') {
16
- opts.datadogLogsInstance.logger[level](message, meta);
35
+ opts.datadogLogsInstance.logger[level](message, wrapMeta(meta));
17
36
  }
18
37
  else {
19
38
  // Datadog requires a string for the message param. Our downstream usage currently provides
20
39
  // either a string or an Error, but for future-proofing this just stringify the unknown object as message.
21
- opts.datadogLogsInstance.logger[level](JSON.stringify(message), meta);
40
+ opts.datadogLogsInstance.logger[level](JSON.stringify(message), wrapMeta(meta));
22
41
  }
23
42
  };
24
43
  }
@@ -30,21 +49,21 @@ export class ReactNativeDatadogTransport {
30
49
  this.level = opts.level || 'info';
31
50
  this.log = (message, meta = {}, level) => {
32
51
  if (message instanceof Error) {
33
- opts.datadogLogsInstance[level](message.message, message.name, message.message, message.stack, meta);
52
+ opts.datadogLogsInstance[level](message.message, message.name, message.message, message.stack, wrapMeta(meta));
34
53
  }
35
54
  else if (typeof message === 'string') {
36
55
  if (meta instanceof Error) {
37
56
  opts.datadogLogsInstance[level](message, meta.name, meta.message, meta.stack);
38
57
  }
39
58
  else if (typeof meta === 'object') {
40
- opts.datadogLogsInstance[level](message, meta);
59
+ opts.datadogLogsInstance[level](message, wrapMeta(meta));
41
60
  }
42
61
  else {
43
- opts.datadogLogsInstance[level](message, { meta });
62
+ opts.datadogLogsInstance[level](message, wrapMeta(meta));
44
63
  }
45
64
  }
46
65
  else {
47
- opts.datadogLogsInstance[level](JSON.stringify(message), { meta });
66
+ opts.datadogLogsInstance[level](JSON.stringify(message), wrapMeta(meta));
48
67
  }
49
68
  };
50
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,+DAA+D;YAC/D,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,0EAA0E;gBAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAc,EAAE,OAAO,CAAC,CAAC;aAClF;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,YAAY,KAAK,EAAE;gBAC/D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3D;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;aACjE;iBAAM;gBACL,2FAA2F;gBAC3F,0GAA0G;gBAC1G,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAc,CAAC,CAAC;aACjF;QACH,CAAC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA2B;IACtC,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAAwC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAc,CAAC,CAAC;aAChH;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,IAAI,YAAY,KAAK,EAAE;oBACzB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/E;qBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBACnC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;iBAC1D;qBAAM;oBACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpD;aACF;iBAAM;gBACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aACpE;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflink/snitch",
3
- "version": "0.0.0-PR-53--b0ed16b",
3
+ "version": "0.0.0-PR-54--a85b8ad",
4
4
  "description": "Front end logging inspired by winston.",
5
5
  "type": "module",
6
6
  "exports": {