@pristine-ts/data-mapping 0.0.278 → 0.0.279

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 (83) hide show
  1. package/dist/lib/cjs/builders/auto-data-mapping.builder.js +147 -0
  2. package/dist/lib/cjs/builders/auto-data-mapping.builder.js.map +1 -0
  3. package/dist/lib/cjs/builders/builders.js +1 -0
  4. package/dist/lib/cjs/builders/builders.js.map +1 -1
  5. package/dist/lib/cjs/decorators/type.decorator.js +20 -0
  6. package/dist/lib/cjs/decorators/type.decorator.js.map +1 -0
  7. package/dist/lib/cjs/mappers/data.mapper.js +18 -4
  8. package/dist/lib/cjs/mappers/data.mapper.js.map +1 -1
  9. package/dist/lib/cjs/nodes/data-mapping.node.js +19 -4
  10. package/dist/lib/cjs/nodes/data-mapping.node.js.map +1 -1
  11. package/dist/lib/cjs/normalizer-options/base-normalizer.options.js +2 -1
  12. package/dist/lib/cjs/normalizer-options/base-normalizer.options.js.map +1 -1
  13. package/dist/lib/cjs/normalizer-options/date-normalizer.options.js +21 -0
  14. package/dist/lib/cjs/normalizer-options/date-normalizer.options.js.map +1 -0
  15. package/dist/lib/cjs/normalizer-options/lowercase-normalizer.options.js.map +1 -1
  16. package/dist/lib/cjs/normalizer-options/normalizer-options.js +3 -0
  17. package/dist/lib/cjs/normalizer-options/normalizer-options.js.map +1 -1
  18. package/dist/lib/cjs/normalizer-options/number-normalizer.options.js +16 -0
  19. package/dist/lib/cjs/normalizer-options/number-normalizer.options.js.map +1 -0
  20. package/dist/lib/cjs/normalizer-options/string-normalizer.options.js +17 -0
  21. package/dist/lib/cjs/normalizer-options/string-normalizer.options.js.map +1 -0
  22. package/dist/lib/cjs/normalizers/date.normalizer.js +73 -0
  23. package/dist/lib/cjs/normalizers/date.normalizer.js.map +1 -0
  24. package/dist/lib/cjs/normalizers/normalizers.js +3 -0
  25. package/dist/lib/cjs/normalizers/normalizers.js.map +1 -1
  26. package/dist/lib/cjs/normalizers/number.normalizer.js +41 -0
  27. package/dist/lib/cjs/normalizers/number.normalizer.js.map +1 -0
  28. package/dist/lib/cjs/normalizers/string.normalizer.js +63 -0
  29. package/dist/lib/cjs/normalizers/string.normalizer.js.map +1 -0
  30. package/dist/lib/cjs/options/auto-data-mapping-builder.options.js +11 -0
  31. package/dist/lib/cjs/options/auto-data-mapping-builder.options.js.map +1 -0
  32. package/dist/lib/cjs/request-interceptors/body-mapping.request-interceptor.js +1 -2
  33. package/dist/lib/cjs/request-interceptors/body-mapping.request-interceptor.js.map +1 -1
  34. package/dist/lib/esm/builders/auto-data-mapping.builder.js +144 -0
  35. package/dist/lib/esm/builders/auto-data-mapping.builder.js.map +1 -0
  36. package/dist/lib/esm/builders/builders.js +1 -0
  37. package/dist/lib/esm/builders/builders.js.map +1 -1
  38. package/dist/lib/esm/decorators/type.decorator.js +16 -0
  39. package/dist/lib/esm/decorators/type.decorator.js.map +1 -0
  40. package/dist/lib/esm/mappers/data.mapper.js +18 -4
  41. package/dist/lib/esm/mappers/data.mapper.js.map +1 -1
  42. package/dist/lib/esm/nodes/data-mapping.node.js +19 -4
  43. package/dist/lib/esm/nodes/data-mapping.node.js.map +1 -1
  44. package/dist/lib/esm/normalizer-options/base-normalizer.options.js +2 -1
  45. package/dist/lib/esm/normalizer-options/base-normalizer.options.js.map +1 -1
  46. package/dist/lib/esm/normalizer-options/date-normalizer.options.js +17 -0
  47. package/dist/lib/esm/normalizer-options/date-normalizer.options.js.map +1 -0
  48. package/dist/lib/esm/normalizer-options/lowercase-normalizer.options.js.map +1 -1
  49. package/dist/lib/esm/normalizer-options/normalizer-options.js +3 -0
  50. package/dist/lib/esm/normalizer-options/normalizer-options.js.map +1 -1
  51. package/dist/lib/esm/normalizer-options/number-normalizer.options.js +12 -0
  52. package/dist/lib/esm/normalizer-options/number-normalizer.options.js.map +1 -0
  53. package/dist/lib/esm/normalizer-options/string-normalizer.options.js +13 -0
  54. package/dist/lib/esm/normalizer-options/string-normalizer.options.js.map +1 -0
  55. package/dist/lib/esm/normalizers/date.normalizer.js +70 -0
  56. package/dist/lib/esm/normalizers/date.normalizer.js.map +1 -0
  57. package/dist/lib/esm/normalizers/normalizers.js +3 -0
  58. package/dist/lib/esm/normalizers/normalizers.js.map +1 -1
  59. package/dist/lib/esm/normalizers/number.normalizer.js +38 -0
  60. package/dist/lib/esm/normalizers/number.normalizer.js.map +1 -0
  61. package/dist/lib/esm/normalizers/string.normalizer.js +60 -0
  62. package/dist/lib/esm/normalizers/string.normalizer.js.map +1 -0
  63. package/dist/lib/esm/options/auto-data-mapping-builder.options.js +7 -0
  64. package/dist/lib/esm/options/auto-data-mapping-builder.options.js.map +1 -0
  65. package/dist/lib/esm/request-interceptors/body-mapping.request-interceptor.js +1 -2
  66. package/dist/lib/esm/request-interceptors/body-mapping.request-interceptor.js.map +1 -1
  67. package/dist/types/builders/auto-data-mapping.builder.d.ts +25 -0
  68. package/dist/types/builders/builders.d.ts +1 -0
  69. package/dist/types/decorators/type.decorator.d.ts +2 -0
  70. package/dist/types/mappers/data.mapper.d.ts +11 -1
  71. package/dist/types/nodes/data-mapping.node.d.ts +10 -0
  72. package/dist/types/normalizer-options/base-normalizer.options.d.ts +2 -2
  73. package/dist/types/normalizer-options/date-normalizer.options.d.ts +12 -0
  74. package/dist/types/normalizer-options/lowercase-normalizer.options.d.ts +1 -1
  75. package/dist/types/normalizer-options/normalizer-options.d.ts +3 -0
  76. package/dist/types/normalizer-options/number-normalizer.options.d.ts +8 -0
  77. package/dist/types/normalizer-options/string-normalizer.options.d.ts +12 -0
  78. package/dist/types/normalizers/date.normalizer.d.ts +6 -0
  79. package/dist/types/normalizers/normalizers.d.ts +3 -0
  80. package/dist/types/normalizers/number.normalizer.d.ts +6 -0
  81. package/dist/types/normalizers/string.normalizer.d.ts +6 -0
  82. package/dist/types/options/auto-data-mapping-builder.options.d.ts +11 -0
  83. package/package.json +8 -7
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var StringNormalizer_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.StringNormalizer = void 0;
11
+ const tsyringe_1 = require("tsyringe");
12
+ const metadata_1 = require("@pristine-ts/metadata");
13
+ const date_fns_1 = require("date-fns");
14
+ let StringNormalizer = StringNormalizer_1 = class StringNormalizer {
15
+ getUniqueKey() {
16
+ return StringNormalizer_1.name;
17
+ }
18
+ normalize(source, options) {
19
+ const typeEnum = metadata_1.TypeUtils.getTypeOfValue(source);
20
+ if (typeEnum === undefined || typeEnum === metadata_1.TypeEnum.Null) {
21
+ if ((options === null || options === void 0 ? void 0 : options.ignoreUndefined) === false) {
22
+ return "";
23
+ }
24
+ return undefined;
25
+ }
26
+ switch (typeEnum) {
27
+ case metadata_1.TypeEnum.String:
28
+ return source;
29
+ case metadata_1.TypeEnum.Number:
30
+ return "" + source;
31
+ case metadata_1.TypeEnum.Boolean:
32
+ return source ? "true" : "false";
33
+ case metadata_1.TypeEnum.Date:
34
+ if (options === null || options === void 0 ? void 0 : options.dateFormat) {
35
+ return (0, date_fns_1.format)(source, options.dateFormat);
36
+ }
37
+ // This will return the default format we want: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON
38
+ return source.toJSON();
39
+ case metadata_1.TypeEnum.Array:
40
+ return source.map((item) => this.normalize(item, options));
41
+ case metadata_1.TypeEnum.Symbol:
42
+ return source.toString();
43
+ case metadata_1.TypeEnum.Object:
44
+ if (source.hasOwnProperty("toString") === true) {
45
+ return source.toString();
46
+ }
47
+ try {
48
+ return JSON.stringify(source);
49
+ }
50
+ catch (e) {
51
+ return "" + source;
52
+ }
53
+ // For now, let's do that for other types. We can make it better eventually.
54
+ default:
55
+ return "" + source;
56
+ }
57
+ }
58
+ };
59
+ exports.StringNormalizer = StringNormalizer;
60
+ exports.StringNormalizer = StringNormalizer = StringNormalizer_1 = __decorate([
61
+ (0, tsyringe_1.injectable)()
62
+ ], StringNormalizer);
63
+ //# sourceMappingURL=string.normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.normalizer.js","sourceRoot":"","sources":["../../../../src/normalizers/string.normalizer.ts"],"names":[],"mappings":";;;;;;;;;;AACA,uCAAoC;AACpC,oDAA0D;AAE1D,uCAAgC;AAGzB,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IACzB,YAAY;QACR,OAAO,kBAAgB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,MAAW,EAAE,OAAiC;QACpD,MAAM,QAAQ,GAAG,oBAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,mBAAQ,CAAC,IAAI,EAAE;YACtD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAK,KAAK,EAAE;gBACpC,OAAO,EAAE,CAAC;aACb;YAED,OAAO,SAAS,CAAC;SACpB;QAED,QAAQ,QAAQ,EAAE;YACd,KAAK,mBAAQ,CAAC,MAAM;gBAChB,OAAO,MAAM,CAAC;YAElB,KAAK,mBAAQ,CAAC,MAAM;gBAChB,OAAO,EAAE,GAAG,MAAM,CAAC;YAEvB,KAAK,mBAAQ,CAAC,OAAO;gBACjB,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAErC,KAAK,mBAAQ,CAAC,IAAI;gBACd,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE;oBACrB,OAAO,IAAA,iBAAM,EAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;iBAC7C;gBAED,4IAA4I;gBAC5I,OAAQ,MAAe,CAAC,MAAM,EAAE,CAAC;YAErC,KAAK,mBAAQ,CAAC,KAAK;gBACf,OAAO,MAAM,CAAC,GAAG,CAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAErE,KAAK,mBAAQ,CAAC,MAAM;gBAChB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;YAE7B,KAAK,mBAAQ,CAAC,MAAM;gBAChB,IAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;oBAC3C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;iBAC5B;gBAED,IAAI;oBACA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;iBACjC;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,EAAE,GAAG,MAAM,CAAA;iBACrB;YAED,4EAA4E;YAChF;gBACI,OAAO,EAAE,GAAG,MAAM,CAAC;SAC1B;IACL,CAAC;CACJ,CAAA;AAxDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,qBAAU,GAAE;GACA,gBAAgB,CAwD5B"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutoDataMappingBuilderOptions = void 0;
4
+ class AutoDataMappingBuilderOptions {
5
+ constructor(options) {
6
+ var _a;
7
+ this.isOptionalDefaultValue = (_a = options === null || options === void 0 ? void 0 : options.isOptionalDefaultValue) !== null && _a !== void 0 ? _a : false;
8
+ }
9
+ }
10
+ exports.AutoDataMappingBuilderOptions = AutoDataMappingBuilderOptions;
11
+ //# sourceMappingURL=auto-data-mapping-builder.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-data-mapping-builder.options.js","sourceRoot":"","sources":["../../../../src/options/auto-data-mapping-builder.options.ts"],"names":[],"mappings":";;;AAAA,MAAa,6BAA6B;IAUtC,YAAY,OAAgD;;QACxD,IAAI,CAAC,sBAAsB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,mCAAI,KAAK,CAAC;IAC3E,CAAC;CACJ;AAbD,sEAaC"}
@@ -26,7 +26,6 @@ const common_1 = require("@pristine-ts/common");
26
26
  const tsyringe_1 = require("tsyringe");
27
27
  const data_mapper_1 = require("../mappers/data.mapper");
28
28
  const body_mapping_decorator_1 = require("../decorators/body-mapping.decorator");
29
- const class_transformer_1 = require("class-transformer");
30
29
  const data_mapping_module_keyname_1 = require("../data-mapping.module.keyname");
31
30
  /**
32
31
  * This class is an interceptor that maps the body of an incoming request.
@@ -56,7 +55,7 @@ let BodyMappingRequestInterceptor = class BodyMappingRequestInterceptor {
56
55
  }, data_mapping_module_keyname_1.DataMappingModuleKeyname);
57
56
  switch (bodyMapping.type) {
58
57
  case "classType":
59
- request.body = (0, class_transformer_1.plainToInstance)(bodyMapping.classType, request.body);
58
+ request.body = yield this.dataMapper.autoMap(request.body, bodyMapping.classType);
60
59
  break;
61
60
  case "DataMappingBuilder":
62
61
  request.body = yield this.dataMapper.map(bodyMapping.dataMappingBuilder, request.body, bodyMapping.destination);
@@ -1 +1 @@
1
- {"version":3,"file":"body-mapping.request-interceptor.js","sourceRoot":"","sources":["../../../../src/request-interceptors/body-mapping.request-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAyF;AACzF,uCAA4C;AAG5C,wDAAkD;AAClD,iFAAyF;AAKzF,yDAAkD;AAClD,gFAAwE;AAExE;;;;GAIG;AAII,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACtC,YAA4D,UAA+B,EAC9D,UAAsB;QADS,eAAU,GAAV,UAAU,CAAqB;QAC9D,eAAU,GAAV,UAAU,CAAY;IACnD,CAAC;IAED;;;;OAIG;IACG,gBAAgB,CAAC,OAAgB,EAAE,UAA4B;;YACjE,MAAM,WAAW,GAAsI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,4DAAmC,CAAC,CAAC;YAErN,IAAG,WAAW,KAAK,SAAS,EAAE;gBAC1B,OAAO,OAAO,CAAC;aAClB;YAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBACnD,OAAO;gBACP,UAAU;gBACV,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;aACzC,EAAE,sDAAwB,CAAC,CAAA;YAE5B,QAAQ,WAAW,CAAC,IAAI,EAAE;gBACtB,KAAK,WAAW;oBACZ,OAAO,CAAC,IAAI,GAAG,IAAA,mCAAe,EAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBACpE,MAAM;gBAEV,KAAK,oBAAoB;oBACrB,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;oBAChH,MAAM;gBAEV,KAAK,UAAU;oBACX,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM;aACb;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;CACJ,CAAA;AAvCY,sEAA6B;wCAA7B,6BAA6B;IAHzC,IAAA,qBAAY,EAAC,sDAAwB,CAAC;IACtC,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;6CACD,wBAAU;GAF1C,6BAA6B,CAuCzC"}
1
+ {"version":3,"file":"body-mapping.request-interceptor.js","sourceRoot":"","sources":["../../../../src/request-interceptors/body-mapping.request-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAyF;AACzF,uCAA4C;AAG5C,wDAAkD;AAClD,iFAAyF;AAMzF,gFAAwE;AAExE;;;;GAIG;AAII,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACtC,YAA4D,UAA+B,EAC9D,UAAsB;QADS,eAAU,GAAV,UAAU,CAAqB;QAC9D,eAAU,GAAV,UAAU,CAAY;IACnD,CAAC;IAED;;;;OAIG;IACG,gBAAgB,CAAC,OAAgB,EAAE,UAA4B;;YACjE,MAAM,WAAW,GAAsI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,4DAAmC,CAAC,CAAC;YAErN,IAAG,WAAW,KAAK,SAAS,EAAE;gBAC1B,OAAO,OAAO,CAAC;aAClB;YAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBACnD,OAAO;gBACP,UAAU;gBACV,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;aACzC,EAAE,sDAAwB,CAAC,CAAA;YAE5B,QAAQ,WAAW,CAAC,IAAI,EAAE;gBACtB,KAAK,WAAW;oBACZ,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;oBAClF,MAAM;gBAEV,KAAK,oBAAoB;oBACrB,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;oBAChH,MAAM;gBAEV,KAAK,UAAU;oBACX,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM;aACb;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;CACJ,CAAA;AAvCY,sEAA6B;wCAA7B,6BAA6B;IAHzC,IAAA,qBAAY,EAAC,sDAAwB,CAAC;IACtC,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;6CACD,wBAAU;GAF1C,6BAA6B,CAuCzC"}
@@ -0,0 +1,144 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { DataMappingBuilder } from "./data-mapping.builder";
8
+ import { DataMappingNode } from "../nodes/data-mapping.node";
9
+ import { ClassMetadata, PropertyMetadata, TypeEnum, TypeUtils } from "@pristine-ts/metadata";
10
+ import { DataMappingLeaf } from "../nodes/data-mapping.leaf";
11
+ import { NumberNormalizer } from "../normalizers/number.normalizer";
12
+ import { StringNormalizer } from "../normalizers/string.normalizer";
13
+ import { DateNormalizer } from "../normalizers/date.normalizer";
14
+ import { MetadataEnum } from "@pristine-ts/common";
15
+ import { DataMappingNodeTypeEnum } from "../enums/data-mapping-node-type.enum";
16
+ import { injectable } from "tsyringe";
17
+ import { AutoDataMappingBuilderOptions } from "../options/auto-data-mapping-builder.options";
18
+ let AutoDataMappingBuilder = class AutoDataMappingBuilder {
19
+ /**
20
+ * This method receives a source object and a destinationType that corresponds to the type of the class
21
+ * that the source should be mapped to. It then creates a DataMappingBuilder object that contains the schema
22
+ * needed to map the source to the destinationType.
23
+ * @param source
24
+ * @param destinationType
25
+ * @param options
26
+ */
27
+ build(source, destinationType, options) {
28
+ const dataMappingBuilder = new DataMappingBuilder();
29
+ this.internalBuild(source, destinationType, dataMappingBuilder, dataMappingBuilder, new AutoDataMappingBuilderOptions(options));
30
+ return dataMappingBuilder;
31
+ }
32
+ /**
33
+ * This method is the internal method that is called recursively to build the schema.
34
+ *
35
+ * @param source
36
+ * @param destinationType
37
+ * @param root
38
+ * @param parent
39
+ * @param options
40
+ * @private
41
+ */
42
+ internalBuild(source, destinationType, root, parent, options) {
43
+ if (!source) {
44
+ return;
45
+ }
46
+ // Get the metadata of destinationType and iterate over its properties.
47
+ const classInformation = ClassMetadata.getInformation(destinationType);
48
+ classInformation.properties.forEach(propertyKey => {
49
+ var _a, _b, _c, _d;
50
+ // Retrieve the metadata for the property
51
+ const propertyInformation = PropertyMetadata.getInformation(destinationType.prototype, propertyKey);
52
+ let typeObject = propertyInformation.typeObject;
53
+ // Check if we have a `@typeFactory` decorator, it means that there's a callback that must be executed
54
+ // for this property to retrieve the actual DestinationType object. If there's one, execute it.
55
+ const typeFactoryCallback = PropertyMetadata.getMetadata(destinationType.prototype, propertyKey, MetadataEnum.TypeFactory);
56
+ if (typeFactoryCallback) {
57
+ typeObject = typeFactoryCallback(source, propertyKey).constructor;
58
+ }
59
+ // If the property references an object, this means that we need to recursively call this method to build the schema.
60
+ if (propertyInformation.typeEnum === TypeEnum.Object) {
61
+ const dataMappingNode = new DataMappingNode(root, parent);
62
+ dataMappingNode
63
+ .setSourceProperty(propertyKey)
64
+ .setDestinationProperty(propertyKey)
65
+ .setDestinationType(typeObject)
66
+ .setIsOptional((_a = propertyInformation.isNullable) !== null && _a !== void 0 ? _a : options.isOptionalDefaultValue)
67
+ .end();
68
+ return this.internalBuild(source[propertyKey], typeObject, root, dataMappingNode, options);
69
+ }
70
+ else if (propertyInformation.typeEnum === TypeEnum.Array) { // If the property references an array, we need to iterate over each element and recursively call this method to build the schema.
71
+ let nestedType = DataMappingNodeTypeEnum.ScalarArray;
72
+ if (!source.hasOwnProperty(propertyKey) || Array.isArray(source[propertyKey]) === false || source[propertyKey].length === 0) {
73
+ return;
74
+ }
75
+ // Use the first element in the array to determine the type of content stored in the array. Here, we assume that all the elements in the array are of the same type.
76
+ const nestedElementType = TypeUtils.getTypeOfValue(source[propertyKey][0]);
77
+ switch (nestedElementType) {
78
+ case TypeEnum.Object:
79
+ nestedType = DataMappingNodeTypeEnum.ObjectArray;
80
+ break;
81
+ }
82
+ // If the array is an array of scalars, then it will be a LeafNode of type ScalarArray with no children.
83
+ if (nestedType === DataMappingNodeTypeEnum.ScalarArray) {
84
+ const dataMappingLeaf = parent.addArrayOfScalar();
85
+ const normalizers = [];
86
+ // todo: Allow for options to be specified per attribute. We should probably add a decorator to can customize the normalizer.
87
+ switch (nestedElementType) {
88
+ case TypeEnum.Number:
89
+ normalizers.push(NumberNormalizer.name);
90
+ break;
91
+ case TypeEnum.String:
92
+ normalizers.push(StringNormalizer.name);
93
+ break;
94
+ case TypeEnum.Date:
95
+ normalizers.push(DateNormalizer.name);
96
+ break;
97
+ }
98
+ normalizers.forEach(normalizer => dataMappingLeaf.addNormalizer(normalizer));
99
+ dataMappingLeaf.setSourceProperty(propertyKey)
100
+ .setDestinationProperty(propertyKey)
101
+ .setIsOptional((_b = propertyInformation.isNullable) !== null && _b !== void 0 ? _b : options.isOptionalDefaultValue)
102
+ .end();
103
+ return;
104
+ }
105
+ // Else, it's an array of objects and we must iterate over the first element to get all the properties and
106
+ // build the tree.
107
+ const dataMappingNode = parent.addArrayOfObjects();
108
+ dataMappingNode
109
+ .setSourceProperty(propertyKey)
110
+ .setDestinationProperty(propertyKey)
111
+ .setDestinationType(propertyInformation.arrayMemberObject)
112
+ .setIsOptional((_c = propertyInformation.isNullable) !== null && _c !== void 0 ? _c : options.isOptionalDefaultValue)
113
+ .end();
114
+ // We assume all the objects are similar so we use only the first one to build the schema
115
+ return this.internalBuild(source[propertyKey][0], propertyInformation.arrayMemberObject, root, dataMappingNode, options);
116
+ }
117
+ const normalizers = [];
118
+ // todo: Allow for options to be specified per attribute. We should probably add a decorator to can customize the normalizer.
119
+ switch (propertyInformation.typeEnum) {
120
+ case TypeEnum.Number:
121
+ normalizers.push(NumberNormalizer.name);
122
+ break;
123
+ case TypeEnum.String:
124
+ normalizers.push(StringNormalizer.name);
125
+ break;
126
+ case TypeEnum.Date:
127
+ normalizers.push(DateNormalizer.name);
128
+ break;
129
+ }
130
+ const dataMappingLeaf = new DataMappingLeaf(root, parent);
131
+ normalizers.forEach(normalizer => dataMappingLeaf.addNormalizer(normalizer));
132
+ dataMappingLeaf
133
+ .setSourceProperty(propertyKey)
134
+ .setDestinationProperty(propertyKey)
135
+ .setIsOptional((_d = propertyInformation.isNullable) !== null && _d !== void 0 ? _d : options.isOptionalDefaultValue)
136
+ .end();
137
+ });
138
+ }
139
+ };
140
+ AutoDataMappingBuilder = __decorate([
141
+ injectable()
142
+ ], AutoDataMappingBuilder);
143
+ export { AutoDataMappingBuilder };
144
+ //# sourceMappingURL=auto-data-mapping.builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-data-mapping.builder.js","sourceRoot":"","sources":["../../../../src/builders/auto-data-mapping.builder.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ export * from "./auto-data-mapping.builder";
1
2
  export * from "./data-mapping.builder";
2
3
  //# sourceMappingURL=builders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../../src/builders/builders.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../../src/builders/builders.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { PropertyMetadata } from "@pristine-ts/metadata";
2
+ import { MetadataEnum } from "@pristine-ts/common";
3
+ export const type = (callback) => {
4
+ return (
5
+ /**
6
+ * The class on which the decorator is used.
7
+ */
8
+ target,
9
+ /**
10
+ * The property on which the decorator is used.
11
+ */
12
+ propertyKey) => {
13
+ PropertyMetadata.defineMetadata(target, propertyKey, MetadataEnum.TypeFactory, callback);
14
+ };
15
+ };
16
+ //# sourceMappingURL=type.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.decorator.js","sourceRoot":"","sources":["../../../../src/decorators/type.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAIjD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAA6B,EAAE,EAAE;IAClD,OAAO;IACH;;OAEG;IACH,MAAW;IAEX;;OAEG;IACH,WAA4B,EAC9B,EAAE;QACA,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC,CAAA;AACL,CAAC,CAAA"}
@@ -24,8 +24,10 @@ import { DataMappingModuleKeyname } from "../data-mapping.module.keyname";
24
24
  import { injectable, injectAll } from "tsyringe";
25
25
  import { plainToInstance } from "class-transformer";
26
26
  import { DataMappingInterceptorNotFoundError } from "../errors/data-mapping-interceptor-not-found.error";
27
+ import { AutoDataMappingBuilder } from "../builders/auto-data-mapping.builder";
27
28
  let DataMapper = class DataMapper {
28
- constructor(dataNormalizers, dataTransformerInterceptors) {
29
+ constructor(autoDataMappingBuilder, dataNormalizers, dataTransformerInterceptors) {
30
+ this.autoDataMappingBuilder = autoDataMappingBuilder;
29
31
  this.dataNormalizers = dataNormalizers;
30
32
  this.dataTransformerInterceptors = dataTransformerInterceptors;
31
33
  this.dataNormalizersMap = {};
@@ -53,6 +55,18 @@ let DataMapper = class DataMapper {
53
55
  return destination;
54
56
  });
55
57
  }
58
+ /**
59
+ * This method automatically maps a source object into the DestinationType.
60
+ * @param source
61
+ * @param destinationType
62
+ * @param options
63
+ */
64
+ autoMap(source, destinationType, options) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const dataMappingBuilder = this.autoDataMappingBuilder.build(source, destinationType, options);
67
+ return this.map(dataMappingBuilder, source, destinationType);
68
+ });
69
+ }
56
70
  /**
57
71
  * This method takes a builder, a source and maps it according to the builder. You can pass a `destinationType (optional)`
58
72
  * that is an object that will be constructed.
@@ -101,9 +115,9 @@ let DataMapper = class DataMapper {
101
115
  DataMapper = __decorate([
102
116
  moduleScoped(DataMappingModuleKeyname),
103
117
  injectable(),
104
- __param(0, injectAll("DataNormalizerInterface")),
105
- __param(1, injectAll("DataTransformerInterceptor")),
106
- __metadata("design:paramtypes", [Array, Array])
118
+ __param(1, injectAll("DataNormalizerInterface")),
119
+ __param(2, injectAll("DataTransformerInterceptor")),
120
+ __metadata("design:paramtypes", [AutoDataMappingBuilder, Array, Array])
107
121
  ], DataMapper);
108
122
  export { DataMapper };
109
123
  //# sourceMappingURL=data.mapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.mapper.js","sourceRoot":"","sources":["../../../../src/mappers/data.mapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,wBAAwB,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAmB,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAC,mCAAmC,EAAC,MAAM,oDAAoD,CAAC;AAIhG,IAAM,UAAU,GAAhB,MAAM,UAAU;IAInB,YAAyD,eAAqE,EAClE,2BAA+E;QADjE,oBAAe,GAAf,eAAe,CAAqC;QACjD,gCAA2B,GAA3B,2BAA2B,CAAmC;QAJ1H,uBAAkB,GAA4E,EAAE,CAAA;QAChG,mCAA8B,GAAsF,EAAE,CAAA;QAInI,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACrC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,cAAc,CAAC;QAC5E,CAAC,CAAC,CAAA;QAEF,2BAA2B,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC9C,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC;QAClF,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACU,MAAM,CAAC,OAA2B,EAAE,MAAa,EAAE,eAAuC;;YACnG,MAAM,WAAW,GAAG,EAAE,CAAC;YAEvB,KAAI,MAAM,OAAO,IAAI,MAAM,EAAE;gBACzB,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;aACvE;YAED,OAAO,WAAW,CAAC;QACvB,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,GAAG,CAAC,OAA2B,EAAE,MAAW,EAAE,eAAuC;;YAC9F,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,iBAAiB,GAAG,MAAM,CAAC;YAE/B,mCAAmC;YACnC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,yBAAyB,EAAE;gBACrD,MAAM,WAAW,GAAG,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAErE,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC3B,MAAM,IAAI,mCAAmC,CAAC,oDAAoD,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;iBACpH;gBAED,mDAAmD;gBACnD,iBAAiB,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;aAC1E;YAED,kDAAkD;YAClD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE;gBAC7B,IAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;oBAC5C,SAAS;iBACZ;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC3E;YAED,mCAAmC;YACnC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,wBAAwB,EAAE;gBACpD,MAAM,WAAW,GAAoC,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAEtG,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC3B,MAAM,IAAI,mCAAmC,CAAC,oDAAoD,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;iBACpH;gBAED,gDAAgD;gBAChD,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;aAC7D;YAED,IAAG,eAAe,EAAE;gBAChB,WAAW,GAAG,eAAe,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;aAC/D;YAED,OAAO,WAAW,CAAC;QACvB,CAAC;KAAA;CACJ,CAAA;AArFY,UAAU;IAFtB,YAAY,CAAC,wBAAwB,CAAC;IACtC,UAAU,EAAE;IAKW,WAAA,SAAS,CAAC,yBAAyB,CAAC,CAAA;IACpC,WAAA,SAAS,CAAC,4BAA4B,CAAC,CAAA;;GALlD,UAAU,CAqFtB"}
1
+ {"version":3,"file":"data.mapper.js","sourceRoot":"","sources":["../../../../src/mappers/data.mapper.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { DataMappingLeaf } from "./data-mapping.leaf";
12
12
  import { BaseDataMappingNode } from "./base-data-mapping.node";
13
13
  import { DataMappingSourcePropertyNotFoundError } from "../errors/data-mapping-source-property-not-found.error";
14
14
  import { ArrayDataMappingNodeInvalidSourcePropertyTypeError } from "../errors/array-data-mapping-node-invalid-source-property-type.error";
15
+ import { plainToInstance } from "class-transformer";
15
16
  export class DataMappingNode extends BaseDataMappingNode {
16
17
  constructor(root, parent, type = DataMappingNodeTypeEnum.Node) {
17
18
  super();
@@ -39,6 +40,14 @@ export class DataMappingNode extends BaseDataMappingNode {
39
40
  this.destinationProperty = destinationProperty;
40
41
  return this;
41
42
  }
43
+ /**
44
+ * This is a setter for `destinationType`.
45
+ * @param destinationType
46
+ */
47
+ setDestinationType(destinationType) {
48
+ this.destinationType = destinationType;
49
+ return this;
50
+ }
42
51
  /**
43
52
  * This is a setter for `isOptional`.
44
53
  * @param isOptional
@@ -107,8 +116,12 @@ export class DataMappingNode extends BaseDataMappingNode {
107
116
  destination[this.destinationProperty] = [];
108
117
  }
109
118
  else {
110
- // todo: we need to get the expected Type of the `destination[this.destinationProperty]` and actually instantiate it.
111
- destination[this.destinationProperty] = {};
119
+ if (this.destinationType) {
120
+ destination[this.destinationProperty] = plainToInstance(this.destinationType, {});
121
+ }
122
+ else {
123
+ destination[this.destinationProperty] = {};
124
+ }
112
125
  }
113
126
  }
114
127
  const destinationElement = destination[this.destinationProperty];
@@ -119,8 +132,10 @@ export class DataMappingNode extends BaseDataMappingNode {
119
132
  throw new ArrayDataMappingNodeInvalidSourcePropertyTypeError(`According to your schema, the property '${this.sourceProperty}' in the source object must contain an Array of objects. Instead, it contains: '${typeof array}'.`, this.sourceProperty);
120
133
  }
121
134
  for (const element of array) {
122
- // todo: we need to get the expected Type of the object in the array in the Destination object
123
- const dest = {};
135
+ let dest = {};
136
+ if (this.destinationType) {
137
+ dest = plainToInstance(this.destinationType, {});
138
+ }
124
139
  for (const key in this.nodes) {
125
140
  if (this.nodes.hasOwnProperty(key) === false) {
126
141
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"data-mapping.node.js","sourceRoot":"","sources":["../../../../src/nodes/data-mapping.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-mapping.node.js","sourceRoot":"","sources":["../../../../src/nodes/data-mapping.node.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  export class BaseNormalizerOptions {
2
2
  constructor(options) {
3
3
  var _a;
4
- this.shouldThrowIfTypeIsNotString = (_a = options === null || options === void 0 ? void 0 : options.shouldThrowIfTypeIsNotString) !== null && _a !== void 0 ? _a : false;
4
+ this.shouldThrowIfTypeIsNotString = false;
5
+ this.shouldThrowIfTypeIsNotString = (_a = options === null || options === void 0 ? void 0 : options.shouldThrowIfTypeIsNotString) !== null && _a !== void 0 ? _a : this.shouldThrowIfTypeIsNotString;
5
6
  }
6
7
  }
7
8
  //# sourceMappingURL=base-normalizer.options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-normalizer.options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/base-normalizer.options.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,qBAAqB;IAGvC,YAAmB,OAA+B;;QAC9C,IAAI,CAAC,4BAA4B,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,4BAA4B,mCAAI,KAAK,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"base-normalizer.options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/base-normalizer.options.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,qBAAqB;IAGvC,YAAmB,OAAwC;;QAFpD,iCAA4B,GAAY,KAAK,CAAC;QAGjD,IAAI,CAAC,4BAA4B,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,4BAA4B,mCAAI,IAAI,CAAC,4BAA4B,CAAC;IACnH,CAAC;CACJ"}
@@ -0,0 +1,17 @@
1
+ export class DateNormalizerOptions {
2
+ constructor(options) {
3
+ var _a, _b;
4
+ /**
5
+ * This property specifies whether an invalid date should return undefined or a date object.
6
+ */
7
+ this.returnUndefinedOnInvalidDate = true;
8
+ /**
9
+ * This property specifies if a number should be treated as being in seconds or not. Since JS Date expects a
10
+ * timestamp in milliseconds, if the number is in seconds, it will be multiplied by 1000.
11
+ */
12
+ this.treatNumbers = "seconds";
13
+ this.returnUndefinedOnInvalidDate = (_a = options === null || options === void 0 ? void 0 : options.returnUndefinedOnInvalidDate) !== null && _a !== void 0 ? _a : this.returnUndefinedOnInvalidDate;
14
+ this.treatNumbers = (_b = options === null || options === void 0 ? void 0 : options.treatNumbers) !== null && _b !== void 0 ? _b : this.treatNumbers;
15
+ }
16
+ }
17
+ //# sourceMappingURL=date-normalizer.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-normalizer.options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/date-normalizer.options.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAY9B,YAAmB,OAAwC;;QAX3D;;WAEG;QACI,iCAA4B,GAAY,IAAI,CAAC;QAEpD;;;WAGG;QACI,iBAAY,GAA+B,SAAS,CAAC;QAGxD,IAAI,CAAC,4BAA4B,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,4BAA4B,mCAAI,IAAI,CAAC,4BAA4B,CAAC;QAC/G,IAAI,CAAC,YAAY,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,IAAI,CAAC,YAAY,CAAC;IACnE,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"lowercase-normalizer.options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/lowercase-normalizer.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAEhE,MAAM,OAAO,0BAA2B,SAAQ,qBAAqB;IACjE,YAAmB,OAAoC;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ"}
1
+ {"version":3,"file":"lowercase-normalizer.options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/lowercase-normalizer.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAEhE,MAAM,OAAO,0BAA2B,SAAQ,qBAAqB;IACjE,YAAmB,OAA6C;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ"}
@@ -1,3 +1,6 @@
1
1
  export * from "./base-normalizer.options";
2
+ export * from "./date-normalizer.options";
2
3
  export * from "./lowercase-normalizer.options";
4
+ export * from "./number-normalizer.options";
5
+ export * from "./string-normalizer.options";
3
6
  //# sourceMappingURL=normalizer-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizer-options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/normalizer-options.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"normalizer-options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/normalizer-options.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,12 @@
1
+ export class NumberNormalizerOptions {
2
+ constructor(options) {
3
+ var _a;
4
+ /**
5
+ * This property specifies whether an undefined value should be ignored and simply returned or treated as a potential string
6
+ * and return an empty string `""`.
7
+ */
8
+ this.ignoreUndefined = true;
9
+ this.ignoreUndefined = (_a = options === null || options === void 0 ? void 0 : options.ignoreUndefined) !== null && _a !== void 0 ? _a : this.ignoreUndefined;
10
+ }
11
+ }
12
+ //# sourceMappingURL=number-normalizer.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-normalizer.options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/number-normalizer.options.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAuB;IAOhC,YAAmB,OAA0C;;QAN7D;;;WAGG;QACI,oBAAe,GAAY,IAAI,CAAC;QAGnC,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,IAAI,CAAC,eAAe,CAAC;IAC5E,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ export class StringNormalizerOptions {
2
+ constructor(options) {
3
+ var _a;
4
+ /**
5
+ * This property specifies whether an undefined value should be ignored and simply returned or treated as a potential string
6
+ * and return an empty string `""`.
7
+ */
8
+ this.ignoreUndefined = true;
9
+ this.ignoreUndefined = (_a = options === null || options === void 0 ? void 0 : options.ignoreUndefined) !== null && _a !== void 0 ? _a : this.ignoreUndefined;
10
+ this.dateFormat = options === null || options === void 0 ? void 0 : options.dateFormat;
11
+ }
12
+ }
13
+ //# sourceMappingURL=string-normalizer.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-normalizer.options.js","sourceRoot":"","sources":["../../../../src/normalizer-options/string-normalizer.options.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAuB;IAYhC,YAAmB,OAA0C;;QAX7D;;;WAGG;QACI,oBAAe,GAAY,IAAI,CAAC;QAQnC,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,IAAI,CAAC,eAAe,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC;IAC1C,CAAC;CACJ"}
@@ -0,0 +1,70 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var DateNormalizer_1;
8
+ import { injectable } from "tsyringe";
9
+ import { TypeEnum, TypeUtils } from "@pristine-ts/metadata";
10
+ let DateNormalizer = DateNormalizer_1 = class DateNormalizer {
11
+ getUniqueKey() {
12
+ return DateNormalizer_1.name;
13
+ }
14
+ normalize(source, options) {
15
+ const typeEnum = TypeUtils.getTypeOfValue(source);
16
+ if (typeEnum === undefined) {
17
+ if ((options === null || options === void 0 ? void 0 : options.returnUndefinedOnInvalidDate) === false) {
18
+ return new Date();
19
+ }
20
+ return undefined;
21
+ }
22
+ let date;
23
+ switch (typeEnum) {
24
+ case TypeEnum.Number:
25
+ if ((options === null || options === void 0 ? void 0 : options.treatNumbers) === "seconds") {
26
+ source = source * 1000;
27
+ }
28
+ case TypeEnum.String:
29
+ date = new Date(source);
30
+ if (!isNaN(date.getTime())) {
31
+ return date;
32
+ }
33
+ break;
34
+ case TypeEnum.Object:
35
+ date = new Date();
36
+ // todo: Allow this property to be customizable in the options eventually
37
+ if (source.hasOwnProperty("year")) {
38
+ date.setFullYear(source["year"]);
39
+ }
40
+ if (source.hasOwnProperty("month")) {
41
+ date.setMonth(source["month"]);
42
+ }
43
+ if (source.hasOwnProperty("day")) {
44
+ date.setDate(source["day"]);
45
+ }
46
+ if (source.hasOwnProperty("hours")) {
47
+ date.setHours(source["hours"]);
48
+ }
49
+ if (source.hasOwnProperty("minutes")) {
50
+ date.setMinutes(source["minutes"]);
51
+ }
52
+ if (source.hasOwnProperty("seconds")) {
53
+ date.setSeconds(source["seconds"]);
54
+ }
55
+ if (!isNaN(date.getTime())) {
56
+ return date;
57
+ }
58
+ break;
59
+ }
60
+ if ((options === null || options === void 0 ? void 0 : options.returnUndefinedOnInvalidDate) === false) {
61
+ return new Date();
62
+ }
63
+ return undefined;
64
+ }
65
+ };
66
+ DateNormalizer = DateNormalizer_1 = __decorate([
67
+ injectable()
68
+ ], DateNormalizer);
69
+ export { DateNormalizer };
70
+ //# sourceMappingURL=date.normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.normalizer.js","sourceRoot":"","sources":["../../../../src/normalizers/date.normalizer.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAGpC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGnD,IAAM,cAAc,sBAApB,MAAM,cAAc;IACvB,YAAY;QACR,OAAO,gBAAc,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,MAAW,EAAE,OAA+B;QAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,4BAA4B,MAAK,KAAK,EAAE;gBACjD,OAAO,IAAI,IAAI,EAAE,CAAC;aACrB;YAED,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,IAAU,CAAC;QAEf,QAAQ,QAAQ,EAAE;YACd,KAAK,QAAQ,CAAC,MAAM;gBAChB,IAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,MAAK,SAAS,EAAE;oBACpC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;iBAC1B;YAEL,KAAK,QAAQ,CAAC,MAAM;gBAChB,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;gBAExB,IAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;oBACvB,OAAO,IAAI,CAAC;iBACf;gBAED,MAAM;YAEV,KAAK,QAAQ,CAAC,MAAM;gBAChB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAElB,yEAAyE;gBACzE,IAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;oBAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;iBACpC;gBACD,IAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;iBAClC;gBACD,IAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;iBAClC;gBACD,IAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACjC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;iBACtC;gBACD,IAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACjC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;iBACtC;gBAED,IAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;oBACvB,OAAO,IAAI,CAAC;iBACf;gBAED,MAAM;SACb;QAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,4BAA4B,MAAK,KAAK,EAAE;YACjD,OAAO,IAAI,IAAI,EAAE,CAAC;SACrB;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CAEJ,CAAA;AAtEY,cAAc;IAD1B,UAAU,EAAE;GACA,cAAc,CAsE1B"}
@@ -1,2 +1,5 @@
1
+ export * from "./date.normalizer";
1
2
  export * from "./lowercase.normalizer";
3
+ export * from "./number.normalizer";
4
+ export * from "./string.normalizer";
2
5
  //# sourceMappingURL=normalizers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizers.js","sourceRoot":"","sources":["../../../../src/normalizers/normalizers.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"normalizers.js","sourceRoot":"","sources":["../../../../src/normalizers/normalizers.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}