mapper-factory 1.0.29 → 1.0.30

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 (2) hide show
  1. package/dist/mapper.js +68 -69
  2. package/package.json +1 -1
package/dist/mapper.js CHANGED
@@ -10,88 +10,87 @@ class MapperFactory {
10
10
  */
11
11
  constructor(object) {
12
12
  const metadataList = (0, field_decorator_1.getMapFieldMetadataList)(this);
13
- object &&
14
- Object.keys(object).forEach(propertyName => {
15
- let metaKeys = metadataList && Object.keys(metadataList).filter(metadata => metadataList[metadata]?.src?.startsWith(propertyName) && metadataList[metadata]?.src != propertyName);
16
- if (metaKeys?.length) {
17
- metaKeys.forEach(metaKey => {
18
- let metaProp = metadataList[metaKey];
19
- if (metaProp) {
20
- let props = metaProp.src?.split('.');
21
- let propsStereoid = props.map(prop => {
22
- let index = prop.indexOf('[');
23
- return {
24
- prop: index > 0 ? prop.substring(0, index) : prop,
25
- isArray: prop.includes('[') && prop.includes(']'),
26
- arrIndex: prop.substring(index),
27
- };
28
- });
29
- let i;
30
- let objCopy = { ...object };
31
- for (i = 0; i < propsStereoid.length; i++) {
32
- if (propsStereoid[i].isArray) {
33
- let arrIndex = propsStereoid[i].arrIndex?.split(/\[(\w+)\]/g)?.filter(index => index !== '');
34
- objCopy = objCopy[propsStereoid[i].prop];
35
- arrIndex.forEach((index, i) => {
36
- objCopy = objCopy[index];
37
- });
38
- }
39
- else {
40
- objCopy = objCopy[propsStereoid[i].prop];
41
- }
13
+ object && Object.keys(object).forEach(propertyName => {
14
+ let metaKeys = metadataList && Object.keys(metadataList).filter(metadata => metadataList[metadata]?.src?.startsWith(propertyName) && metadataList[metadata]?.src != 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];
42
40
  }
43
- if (metaProp?.transformer) {
44
- 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);
45
55
  }
46
56
  else {
47
- this[metaKey] = objCopy;
57
+ this[metaKey] = object[src];
48
58
  }
49
59
  }
50
60
  else {
51
- let metaKey = metadataList && Object.keys(metadataList).find(metadata => metadataList[metadata]?.src == propertyName);
52
- if (metaKey) {
53
- const src = metadataList[metaKey].src || propertyName;
54
- if (metadataList[metaKey].transformer) {
55
- this[metaKey] = metadataList[metaKey].transformer(object[src], object);
56
- }
57
- else {
58
- this[metaKey] = object[src];
59
- }
61
+ if (metadataList[propertyName]?.transformer) {
62
+ this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
60
63
  }
61
64
  else {
62
- if (metadataList[propertyName]?.transformer) {
63
- this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
64
- }
65
- else {
66
- this[propertyName] = object[propertyName];
67
- }
65
+ 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
  else {
73
- let metaKey = metadataList && Object.keys(metadataList).find(metadata => metadataList[metadata]?.src == propertyName);
74
- if (metaKey) {
75
- const src = metadataList[metaKey].src || propertyName;
76
- if (metadataList[metaKey].transformer) {
77
- this[metaKey] = metadataList[metaKey].transformer(object[src], object);
78
- }
79
- else {
80
- this[metaKey] = object[src];
81
- }
83
+ if (metadataList && metadataList[propertyName]?.transformer) {
84
+ this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
82
85
  }
83
86
  else {
84
- if (metadataList && metadataList[propertyName]?.transformer) {
85
- this[propertyName] = metadataList[propertyName].transformer(object[propertyName], object);
86
- }
87
- else {
88
- this[propertyName] = object[propertyName];
89
- }
87
+ this[propertyName] = object[propertyName];
90
88
  }
91
89
  }
92
- });
90
+ }
91
+ });
93
92
  //MAP CASE initialize = true
94
- Object.keys(metadataList).forEach(metaName => {
93
+ metadataList && Object.keys(metadataList).forEach(metaName => {
95
94
  if (metadataList[metaName]?.initialize && metadataList[metaName]?.transformer) {
96
95
  this[metaName] = metadataList[metaName]?.transformer(null, object);
97
96
  }
@@ -105,7 +104,7 @@ class MapperFactory {
105
104
  toMap() {
106
105
  const metadataList = (0, field_decorator_1.getMapFieldMetadataList)(this);
107
106
  let obj = {};
108
- Object.keys(this).forEach(propertyName => {
107
+ this && Object.keys(this).forEach(propertyName => {
109
108
  if (metadataList && Object.keys(metadataList).some(prop => prop == propertyName)) {
110
109
  const src = metadataList[propertyName].src || propertyName;
111
110
  if (src.includes('.')) {
@@ -159,7 +158,7 @@ class MapperFactory {
159
158
  else {
160
159
  if (metadataList[propertyName]?.initialize && metadataList[propertyName]?.reverser) {
161
160
  const revObj = metadataList[propertyName]?.reverser(this[propertyName]);
162
- Object.keys(revObj).forEach(key => {
161
+ revObj && Object.keys(revObj).forEach(key => {
163
162
  obj[key] = revObj[key];
164
163
  });
165
164
  }
@@ -193,7 +192,7 @@ class MapperFactory {
193
192
  */
194
193
  objToModel(obj) {
195
194
  const metadataList = (0, field_decorator_1.getMapFieldMetadataList)(this);
196
- Object.keys(obj).forEach(propertyName => {
195
+ obj && Object.keys(obj).forEach(propertyName => {
197
196
  if (metadataList && Object.keys(metadataList).some(prop => prop == propertyName)) {
198
197
  if (metadataList[propertyName].transformer) {
199
198
  if (Array.isArray(obj[propertyName])) {
@@ -222,7 +221,7 @@ class MapperFactory {
222
221
  */
223
222
  empty() {
224
223
  let check = true;
225
- Object.keys(this).forEach(propertyName => {
224
+ this && Object.keys(this).forEach(propertyName => {
226
225
  if (this[propertyName] !== undefined && this[propertyName] !== null) {
227
226
  check = false;
228
227
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapper-factory",
3
- "version": "1.0.29",
3
+ "version": "1.0.30",
4
4
  "description": "mapper for typescript object",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",