mapper-factory 1.0.34 → 1.0.35

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/dist/example.js CHANGED
@@ -36,6 +36,14 @@ __decorate([
36
36
  }),
37
37
  __metadata("design:type", Array)
38
38
  ], History.prototype, "daysActive", void 0);
39
+ __decorate([
40
+ (0, field_decorator_1.MapField)({
41
+ initialize: true,
42
+ transformer: (flBlockNar, obj) => obj.flBlockNar == '1',
43
+ reverser: (flBlockNar) => flBlockNar ? { flBlockNar: '1' } : { flBlockNar: '0' },
44
+ }),
45
+ __metadata("design:type", Boolean)
46
+ ], History.prototype, "flBlockNar", void 0);
39
47
  __decorate([
40
48
  (0, field_decorator_1.MapField)({
41
49
  src: "test.concatenation"
@@ -124,7 +132,7 @@ console.log(u);
124
132
  console.log(u.toMap());
125
133
  //TEST ref
126
134
  console.log("\nTEST REF");
127
- let hTest = new History({ monday: "0", tuesday: "1", control: "control" });
135
+ let hTest = new History({ monday: "0", tuesday: "1", control: "control", flBlockNar: '1' });
128
136
  console.log(hTest);
129
137
  hTest.daysActive = ['1', '0'];
130
138
  console.log(hTest.toMap());
@@ -133,3 +141,10 @@ console.log("\nTEST CONCAT W POINT");
133
141
  let hTest2 = new History({ test: { concatenation: "resolve " }, control: "control" });
134
142
  console.log(hTest2);
135
143
  console.log(hTest2.toMap());
144
+ //TEST constructor
145
+ console.log("\nTEST constructor");
146
+ let constructorTest = new History({ test: { concatenation: "resolve " }, control: "control", testCase: "testCase" });
147
+ constructorTest.objToModel({
148
+ asd: 'asd'
149
+ });
150
+ console.log(constructorTest);
package/dist/mapper.js CHANGED
@@ -11,80 +11,83 @@ class MapperFactory {
11
11
  constructor(object) {
12
12
  const metadataList = (0, field_decorator_1.getMapFieldMetadataList)(this);
13
13
  object && Object.keys(object).forEach(propertyName => {
14
- let metaKeys = metadataList && Object.keys(metadataList).filter(metadata => metadataList[metadata]?.src?.split('.')?.includes(propertyName));
15
- if (metaKeys?.length) {
16
- metaKeys.forEach(metaKey => {
17
- let metaProp = metadataList[metaKey];
18
- if (metaProp) {
19
- let props = metaProp.src?.split('.');
20
- let propsStereoid = props.map(prop => {
21
- let index = prop.indexOf('[');
22
- return {
23
- prop: index > 0 ? prop.substring(0, index) : prop,
24
- isArray: prop.includes('[') && prop.includes(']'),
25
- arrIndex: prop.substring(index),
26
- };
27
- });
28
- let i;
29
- let objCopy = { ...object };
30
- for (i = 0; i < propsStereoid.length; i++) {
31
- if (propsStereoid[i].isArray) {
32
- let arrIndex = propsStereoid[i].arrIndex?.split(/\[(\w+)\]/g)?.filter(index => index !== '');
33
- objCopy = objCopy[propsStereoid[i].prop];
34
- arrIndex.forEach((index, i) => {
35
- objCopy = objCopy[index];
36
- });
37
- }
38
- else {
39
- objCopy = objCopy[propsStereoid[i].prop];
14
+ const properties = Object.keys((0, field_decorator_1.getPrototype)(this));
15
+ if (properties.includes(propertyName)) {
16
+ let metaKeys = metadataList && Object.keys(metadataList).filter(metadata => metadataList[metadata]?.src?.split('.')?.includes(propertyName));
17
+ if (metaKeys?.length) {
18
+ metaKeys.forEach(metaKey => {
19
+ let metaProp = metadataList[metaKey];
20
+ if (metaProp) {
21
+ let props = metaProp.src?.split('.');
22
+ let propsStereoid = props.map(prop => {
23
+ let index = prop.indexOf('[');
24
+ return {
25
+ prop: index > 0 ? prop.substring(0, index) : prop,
26
+ isArray: prop.includes('[') && prop.includes(']'),
27
+ arrIndex: prop.substring(index),
28
+ };
29
+ });
30
+ let i;
31
+ let objCopy = { ...object };
32
+ for (i = 0; i < propsStereoid.length; i++) {
33
+ if (propsStereoid[i].isArray) {
34
+ let arrIndex = propsStereoid[i].arrIndex?.split(/\[(\w+)\]/g)?.filter(index => index !== '');
35
+ objCopy = objCopy[propsStereoid[i].prop];
36
+ arrIndex.forEach((index, i) => {
37
+ objCopy = objCopy[index];
38
+ });
39
+ }
40
+ else {
41
+ objCopy = objCopy[propsStereoid[i].prop];
42
+ }
40
43
  }
41
- }
42
- if (metaProp?.transformer) {
43
- this[metaKey] = metaProp.transformer(objCopy, object);
44
- }
45
- else {
46
- this[metaKey] = objCopy;
47
- }
48
- }
49
- else {
50
- let metaKey = metadataList && Object.keys(metadataList).find(metadata => metadataList[metadata]?.src == propertyName);
51
- if (metaKey) {
52
- const src = metadataList[metaKey].src || propertyName;
53
- if (metadataList[metaKey].transformer) {
54
- this[metaKey] = metadataList[metaKey].transformer(object[src], object);
44
+ if (metaProp?.transformer) {
45
+ this[metaKey] = metaProp.transformer(objCopy, object);
55
46
  }
56
47
  else {
57
- this[metaKey] = object[src];
48
+ this[metaKey] = objCopy;
58
49
  }
59
50
  }
60
51
  else {
61
- if (metadataList[propertyName]?.transformer) {
62
- this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
52
+ let metaKey = metadataList && Object.keys(metadataList).find(metadata => metadataList[metadata]?.src == propertyName);
53
+ if (metaKey) {
54
+ const src = metadataList[metaKey].src || propertyName;
55
+ if (metadataList[metaKey].transformer) {
56
+ this[metaKey] = metadataList[metaKey].transformer(object[src], object);
57
+ }
58
+ else {
59
+ this[metaKey] = object[src];
60
+ }
63
61
  }
64
62
  else {
65
- this[propertyName] = object[propertyName];
63
+ if (metadataList[propertyName]?.transformer) {
64
+ this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
65
+ }
66
+ else {
67
+ this[propertyName] = object[propertyName];
68
+ }
66
69
  }
67
70
  }
68
- }
69
- });
70
- }
71
- else {
72
- let metaKey = metadataList && Object.keys(metadataList).find(metadata => metadataList[metadata]?.src == propertyName);
73
- if (metaKey) {
74
- const src = metadataList[metaKey].src || propertyName;
75
- if (metadataList[metaKey].transformer) {
76
- this[metaKey] = metadataList[metaKey].transformer(object[src], object);
77
- }
78
- else {
79
- this[metaKey] = object[src];
80
- }
71
+ });
81
72
  }
82
73
  else {
83
- if (metadataList && metadataList[propertyName]?.transformer) {
84
- this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
74
+ let metaKey = metadataList && Object.keys(metadataList).find(metadata => metadataList[metadata]?.src == propertyName);
75
+ if (metaKey) {
76
+ const src = metadataList[metaKey].src || propertyName;
77
+ if (metadataList[metaKey].transformer) {
78
+ this[metaKey] = metadataList[metaKey].transformer(object[src], object);
79
+ }
80
+ else {
81
+ this[metaKey] = object[src];
82
+ }
85
83
  }
86
84
  else {
87
- this[propertyName] = object[propertyName];
85
+ if (metadataList && metadataList[propertyName]?.transformer) {
86
+ this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
87
+ }
88
+ else {
89
+ this[propertyName] = object[propertyName];
90
+ }
88
91
  }
89
92
  }
90
93
  }
@@ -105,7 +108,8 @@ class MapperFactory {
105
108
  const metadataList = (0, field_decorator_1.getMapFieldMetadataList)(this);
106
109
  let obj = {};
107
110
  this && Object.keys(this).forEach(propertyName => {
108
- if (metadataList && Object.keys(metadataList).some(prop => prop == propertyName)) {
111
+ const properties = Object.keys((0, field_decorator_1.getPrototype)(this));
112
+ if (properties.includes(propertyName) && metadataList && Object.keys(metadataList).some(prop => prop == propertyName)) {
109
113
  const src = metadataList[propertyName].src || propertyName;
110
114
  if (src.includes('.')) {
111
115
  let props = src.split('.');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapper-factory",
3
- "version": "1.0.34",
3
+ "version": "1.0.35",
4
4
  "description": "mapper for typescript object",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",