mapper-factory 1.0.35 → 1.0.37

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,14 +36,6 @@ __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);
47
39
  __decorate([
48
40
  (0, field_decorator_1.MapField)({
49
41
  src: "test.concatenation"
@@ -132,7 +124,7 @@ console.log(u);
132
124
  console.log(u.toMap());
133
125
  //TEST ref
134
126
  console.log("\nTEST REF");
135
- let hTest = new History({ monday: "0", tuesday: "1", control: "control", flBlockNar: '1' });
127
+ let hTest = new History({ monday: "0", tuesday: "1", control: "control" });
136
128
  console.log(hTest);
137
129
  hTest.daysActive = ['1', '0'];
138
130
  console.log(hTest.toMap());
@@ -141,10 +133,3 @@ console.log("\nTEST CONCAT W POINT");
141
133
  let hTest2 = new History({ test: { concatenation: "resolve " }, control: "control" });
142
134
  console.log(hTest2);
143
135
  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,83 +11,80 @@ 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
- 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
- }
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];
43
40
  }
44
- if (metaProp?.transformer) {
45
- this[metaKey] = metaProp.transformer(objCopy, object);
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);
46
55
  }
47
56
  else {
48
- this[metaKey] = objCopy;
57
+ this[metaKey] = object[src];
49
58
  }
50
59
  }
51
60
  else {
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
- }
61
+ if (metadataList[propertyName]?.transformer) {
62
+ this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
61
63
  }
62
64
  else {
63
- if (metadataList[propertyName]?.transformer) {
64
- this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
65
- }
66
- else {
67
- this[propertyName] = object[propertyName];
68
- }
65
+ this[propertyName] = object[propertyName];
69
66
  }
70
67
  }
71
- });
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
+ }
72
81
  }
73
82
  else {
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
- }
83
+ if (metadataList && metadataList[propertyName]?.transformer) {
84
+ this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
83
85
  }
84
86
  else {
85
- if (metadataList && metadataList[propertyName]?.transformer) {
86
- this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
87
- }
88
- else {
89
- this[propertyName] = object[propertyName];
90
- }
87
+ this[propertyName] = object[propertyName];
91
88
  }
92
89
  }
93
90
  }
@@ -108,8 +105,7 @@ class MapperFactory {
108
105
  const metadataList = (0, field_decorator_1.getMapFieldMetadataList)(this);
109
106
  let obj = {};
110
107
  this && Object.keys(this).forEach(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)) {
108
+ if (metadataList && Object.keys(metadataList).some(prop => prop == propertyName)) {
113
109
  const src = metadataList[propertyName].src || propertyName;
114
110
  if (src.includes('.')) {
115
111
  let props = src.split('.');
@@ -173,11 +169,14 @@ class MapperFactory {
173
169
  return item?.toMap ? item.toMap() : item;
174
170
  });
175
171
  }
172
+ else if (metadataList[propertyName]?.reverser) {
173
+ obj[src] = metadataList[propertyName].reverser(this[propertyName], this);
174
+ }
176
175
  else if (this[propertyName]?.toMap) {
177
176
  obj[src] = this[propertyName]?.toMap();
178
177
  }
179
178
  else {
180
- obj[src] = metadataList[propertyName]?.reverser ? metadataList[propertyName].reverser(this[propertyName], this) : this[propertyName];
179
+ obj[src] = this[propertyName];
181
180
  }
182
181
  }
183
182
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapper-factory",
3
- "version": "1.0.35",
3
+ "version": "1.0.37",
4
4
  "description": "mapper for typescript object",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",