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 +16 -1
- package/dist/mapper.js +65 -61
- package/package.json +1 -1
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
|
-
|
|
15
|
-
if (
|
|
16
|
-
metaKeys.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let
|
|
20
|
-
|
|
21
|
-
let
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
objCopy = objCopy[
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
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] =
|
|
48
|
+
this[metaKey] = objCopy;
|
|
58
49
|
}
|
|
59
50
|
}
|
|
60
51
|
else {
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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
|
-
|
|
84
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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('.');
|