@pristine-ts/data-mapping-common 2.0.4 → 2.0.5

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.
@@ -37,17 +37,39 @@ class StringNormalizer extends base_normalizer_1.BaseNormalizer {
37
37
  return source.toString();
38
38
  case metadata_1.TypeEnum.Object:
39
39
  if (source.hasOwnProperty("toString") === true) {
40
- return source.toString();
41
- }
42
- try {
43
- return JSON.stringify(source);
44
- }
45
- catch (e) {
46
- return "" + source;
40
+ try {
41
+ return source.toString();
42
+ }
43
+ catch (_a) {
44
+ // Custom toString threw — fall through to JSON.stringify.
45
+ }
47
46
  }
47
+ return this.safeStringify(source);
48
48
  // For now, let's do that for other types. We can make it better eventually.
49
49
  default:
50
- return "" + source;
50
+ return this.safeStringify(source);
51
+ }
52
+ }
53
+ /**
54
+ * Total stringifier. A normalizer must never propagate a throw from a user-supplied
55
+ * value's `toString` / `Symbol.toPrimitive` or from a circular `JSON.stringify` —
56
+ * normalization runs inside data-mapping pipelines whose callers don't expect to catch.
57
+ */
58
+ safeStringify(value) {
59
+ try {
60
+ const json = JSON.stringify(value);
61
+ if (json !== undefined) {
62
+ return json;
63
+ }
64
+ }
65
+ catch (_a) {
66
+ // Circular reference, BigInt, throwing toJSON, etc. Fall through.
67
+ }
68
+ try {
69
+ return String(value);
70
+ }
71
+ catch (_b) {
72
+ return "[unrepresentable]";
51
73
  }
52
74
  }
53
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"string.normalizer.js","sourceRoot":"","sources":["../../../../src/normalizers/string.normalizer.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,uCAAgC;AAChC,uDAAiD;AAEpC,QAAA,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE,MAAa,gBAAiB,SAAQ,gCAAuC;IAC3E,YAAY;QACV,OAAO,iCAAyB,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,MAAW,EAAE,OAAiC;QACtD,MAAM,QAAQ,GAAG,oBAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAElD,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,mBAAQ,CAAC,IAAI,EAAE,CAAC;YACzD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,mBAAQ,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC;YAEhB,KAAK,mBAAQ,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,MAAM,CAAC;YAErB,KAAK,mBAAQ,CAAC,OAAO;gBACnB,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAEnC,KAAK,mBAAQ,CAAC,IAAI;gBAChB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE,CAAC;oBACxB,OAAO,IAAA,iBAAM,EAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC;gBAED,4IAA4I;gBAC5I,OAAQ,MAAe,CAAC,MAAM,EAAE,CAAC;YAEnC,KAAK,mBAAQ,CAAC,KAAK;gBACjB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAElE,KAAK,mBAAQ,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;YAE3B,KAAK,mBAAQ,CAAC,MAAM;gBAClB,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC/C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,EAAE,GAAG,MAAM,CAAA;gBACpB,CAAC;YAEH,4EAA4E;YAC5E;gBACE,OAAO,EAAE,GAAG,MAAM,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AA1DD,4CA0DC"}
1
+ {"version":3,"file":"string.normalizer.js","sourceRoot":"","sources":["../../../../src/normalizers/string.normalizer.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,uCAAgC;AAChC,uDAAiD;AAEpC,QAAA,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE,MAAa,gBAAiB,SAAQ,gCAAuC;IAC3E,YAAY;QACV,OAAO,iCAAyB,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,MAAW,EAAE,OAAiC;QACtD,MAAM,QAAQ,GAAG,oBAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAElD,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,mBAAQ,CAAC,IAAI,EAAE,CAAC;YACzD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,mBAAQ,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC;YAEhB,KAAK,mBAAQ,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,MAAM,CAAC;YAErB,KAAK,mBAAQ,CAAC,OAAO;gBACnB,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAEnC,KAAK,mBAAQ,CAAC,IAAI;gBAChB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE,CAAC;oBACxB,OAAO,IAAA,iBAAM,EAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC;gBAED,4IAA4I;gBAC5I,OAAQ,MAAe,CAAC,MAAM,EAAE,CAAC;YAEnC,KAAK,mBAAQ,CAAC,KAAK;gBACjB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAElE,KAAK,mBAAQ,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;YAE3B,KAAK,mBAAQ,CAAC,MAAM;gBAClB,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC/C,IAAI,CAAC;wBACH,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3B,CAAC;oBAAC,WAAM,CAAC;wBACP,0DAA0D;oBAC5D,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAEpC,4EAA4E;YAC5E;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,KAAc;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,mBAAmB,CAAC;QAC7B,CAAC;IACH,CAAC;CACF;AAhFD,4CAgFC"}