@edirect/template 1.5.2 → 11.0.17
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/README.md +154 -159
- package/dist/README.md +1081 -0
- package/dist/package.json +45 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +5 -0
- package/dist/{templateModule → src/templateModule}/index.d.ts +3 -2
- package/dist/src/templateModule/index.d.ts.map +1 -0
- package/dist/{templateModule → src/templateModule}/index.js +85 -74
- package/dist/{templateModule → src/templateModule}/interfaces.d.ts +7 -6
- package/dist/src/templateModule/interfaces.d.ts.map +1 -0
- package/dist/{templateModule → src/templateModule}/interfaces.js +0 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +35 -28
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -19
- package/dist/index.js.map +0 -1
- package/dist/templateModule/index.js.map +0 -1
- package/dist/templateModule/interfaces.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ $ npm i --save @edirect/template
|
|
|
11
11
|
### Import
|
|
12
12
|
|
|
13
13
|
```javascript
|
|
14
|
-
import { TemplateModule } from
|
|
14
|
+
import { TemplateModule } from './TemplateModule';
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
### Methods
|
|
@@ -66,17 +66,17 @@ Transforms a payload object on a given template.
|
|
|
66
66
|
### Simple example
|
|
67
67
|
|
|
68
68
|
```javascript
|
|
69
|
-
import { TemplateModule } from
|
|
69
|
+
import { TemplateModule } from '@edirect/template';
|
|
70
70
|
|
|
71
71
|
const template = {
|
|
72
|
-
edirect_firstname:
|
|
73
|
-
edirect_lastname:
|
|
72
|
+
edirect_firstname: 'subscriber.firstName',
|
|
73
|
+
edirect_lastname: 'subscriber.lastName',
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
const dataSource = {
|
|
77
77
|
subscriber: {
|
|
78
|
-
firstName:
|
|
79
|
-
lastName:
|
|
78
|
+
firstName: 'template',
|
|
79
|
+
lastName: 'service',
|
|
80
80
|
},
|
|
81
81
|
};
|
|
82
82
|
|
|
@@ -147,34 +147,34 @@ export default transformers;
|
|
|
147
147
|
##### File name: index.ts
|
|
148
148
|
|
|
149
149
|
```javascript
|
|
150
|
-
import { TemplateModule } from
|
|
151
|
-
import baseTransformers from
|
|
150
|
+
import { TemplateModule } from '@edirect/template';
|
|
151
|
+
import baseTransformers from './baseTransformers';
|
|
152
152
|
|
|
153
153
|
const template = {
|
|
154
154
|
edirect_firstname: {
|
|
155
|
-
fields: [
|
|
156
|
-
transformer:
|
|
157
|
-
defaultValue:
|
|
155
|
+
fields: ['firstName', 'subscriber.firstName'],
|
|
156
|
+
transformer: 'upperCase',
|
|
157
|
+
defaultValue: 'First Name - Default',
|
|
158
158
|
},
|
|
159
159
|
edirect_lastname: {
|
|
160
|
-
fields: [
|
|
160
|
+
fields: ['lastName', 'subscriber.lastName'],
|
|
161
161
|
},
|
|
162
162
|
edirect_fullname: {
|
|
163
|
-
transformer:
|
|
163
|
+
transformer: 'fullName',
|
|
164
164
|
},
|
|
165
165
|
edirect_phone: {
|
|
166
|
-
fields: [
|
|
167
|
-
defaultValue:
|
|
166
|
+
fields: ['phoneNumber', 'subscriber.phoneNumber'],
|
|
167
|
+
defaultValue: '999999999',
|
|
168
168
|
},
|
|
169
169
|
timeZone: {
|
|
170
|
-
defaultValue:
|
|
170
|
+
defaultValue: 'Time zone in Porto (GMT+1)',
|
|
171
171
|
},
|
|
172
172
|
};
|
|
173
173
|
|
|
174
174
|
const dataSource = {
|
|
175
175
|
subscriber: {
|
|
176
|
-
firstName:
|
|
177
|
-
lastName:
|
|
176
|
+
firstName: 'template',
|
|
177
|
+
lastName: 'service',
|
|
178
178
|
},
|
|
179
179
|
};
|
|
180
180
|
|
|
@@ -219,33 +219,33 @@ export default transformers;
|
|
|
219
219
|
##### File name: index.ts
|
|
220
220
|
|
|
221
221
|
```javascript
|
|
222
|
-
import { TemplateModule } from
|
|
223
|
-
import baseTransformers from
|
|
222
|
+
import { TemplateModule } from '@edirect/template';
|
|
223
|
+
import baseTransformers from './baseTransformers';
|
|
224
224
|
|
|
225
225
|
const template = {
|
|
226
226
|
order: {
|
|
227
|
-
date:
|
|
228
|
-
value:
|
|
227
|
+
date: 'order.date',
|
|
228
|
+
value: 'order.value',
|
|
229
229
|
subscriber: {
|
|
230
|
-
name:
|
|
231
|
-
phone:
|
|
230
|
+
name: 'sub.name',
|
|
231
|
+
phone: 'sub.phone',
|
|
232
232
|
email: {
|
|
233
|
-
fields: [
|
|
233
|
+
fields: ['email', 'sub.email'],
|
|
234
234
|
},
|
|
235
235
|
address: {
|
|
236
|
-
street:
|
|
237
|
-
number:
|
|
236
|
+
street: 'sub.add.stt',
|
|
237
|
+
number: 'sub.add.num',
|
|
238
238
|
city: {
|
|
239
|
-
fields: [
|
|
240
|
-
transformer:
|
|
239
|
+
fields: ['sub.add.city'],
|
|
240
|
+
transformer: 'upperCase',
|
|
241
241
|
},
|
|
242
242
|
state: {
|
|
243
|
-
fields: [
|
|
244
|
-
transformer:
|
|
243
|
+
fields: ['sub.add.stt'],
|
|
244
|
+
transformer: 'upperCase',
|
|
245
245
|
},
|
|
246
246
|
zip: {
|
|
247
|
-
fields: [
|
|
248
|
-
defaultValue:
|
|
247
|
+
fields: ['sub.add.zip'],
|
|
248
|
+
defaultValue: '0000-000',
|
|
249
249
|
},
|
|
250
250
|
},
|
|
251
251
|
},
|
|
@@ -255,18 +255,18 @@ const template = {
|
|
|
255
255
|
const dataSource = {
|
|
256
256
|
order: {
|
|
257
257
|
value: 1000.0,
|
|
258
|
-
date:
|
|
258
|
+
date: '2000-01-01',
|
|
259
259
|
},
|
|
260
260
|
sub: {
|
|
261
|
-
name:
|
|
262
|
-
phone:
|
|
263
|
-
email:
|
|
261
|
+
name: 'name-test',
|
|
262
|
+
phone: '999999999',
|
|
263
|
+
email: 'template.service@bolltech.io',
|
|
264
264
|
add: {
|
|
265
|
-
st:
|
|
265
|
+
st: 'st-test',
|
|
266
266
|
num: 100,
|
|
267
|
-
city:
|
|
268
|
-
stt:
|
|
269
|
-
zip:
|
|
267
|
+
city: 'city-test',
|
|
268
|
+
stt: 'state-test',
|
|
269
|
+
zip: 'zip-test',
|
|
270
270
|
},
|
|
271
271
|
},
|
|
272
272
|
};
|
|
@@ -326,27 +326,27 @@ export default transformers;
|
|
|
326
326
|
##### File name: index.ts
|
|
327
327
|
|
|
328
328
|
```javascript
|
|
329
|
-
import { TemplateModule } from
|
|
330
|
-
import baseTransformers from
|
|
329
|
+
import { TemplateModule } from '@edirect/template';
|
|
330
|
+
import baseTransformers from './baseTransformers';
|
|
331
331
|
|
|
332
332
|
const template = {
|
|
333
333
|
quote: {
|
|
334
334
|
orders: {
|
|
335
|
-
arraySource:
|
|
335
|
+
arraySource: 'order',
|
|
336
336
|
arrayTemplate: {
|
|
337
|
-
value:
|
|
338
|
-
date:
|
|
337
|
+
value: 'value',
|
|
338
|
+
date: 'date',
|
|
339
339
|
products: {
|
|
340
|
-
arraySource:
|
|
340
|
+
arraySource: 'products',
|
|
341
341
|
arrayTemplate: {
|
|
342
|
-
id:
|
|
343
|
-
value:
|
|
342
|
+
id: 'id',
|
|
343
|
+
value: 'value',
|
|
344
344
|
description: {
|
|
345
|
-
fields: [
|
|
346
|
-
transformer:
|
|
347
|
-
defaultValue:
|
|
345
|
+
fields: ['description'],
|
|
346
|
+
transformer: 'upperCase',
|
|
347
|
+
defaultValue: 'Default description',
|
|
348
348
|
},
|
|
349
|
-
categories:
|
|
349
|
+
categories: 'categories',
|
|
350
350
|
},
|
|
351
351
|
},
|
|
352
352
|
},
|
|
@@ -358,24 +358,24 @@ const dataSource = {
|
|
|
358
358
|
order: [
|
|
359
359
|
{
|
|
360
360
|
value: 1000.0,
|
|
361
|
-
date:
|
|
361
|
+
date: '2000-01-01',
|
|
362
362
|
products: [
|
|
363
363
|
{
|
|
364
|
-
id:
|
|
364
|
+
id: 'id-test-1',
|
|
365
365
|
value: 1000,
|
|
366
|
-
description:
|
|
367
|
-
categories: [
|
|
366
|
+
description: 'description-test 1',
|
|
367
|
+
categories: ['category-1'],
|
|
368
368
|
},
|
|
369
369
|
{
|
|
370
|
-
id:
|
|
370
|
+
id: 'id-test-2',
|
|
371
371
|
value: 2000,
|
|
372
|
-
description:
|
|
373
|
-
categories: [
|
|
372
|
+
description: 'description-test 2',
|
|
373
|
+
categories: ['category-1', 'category-2'],
|
|
374
374
|
},
|
|
375
375
|
{
|
|
376
|
-
id:
|
|
376
|
+
id: 'id-test-3',
|
|
377
377
|
value: 3000,
|
|
378
|
-
categories: [
|
|
378
|
+
categories: ['category-1', 'category-2', 'category-3'],
|
|
379
379
|
},
|
|
380
380
|
],
|
|
381
381
|
},
|
|
@@ -429,7 +429,7 @@ console.log(result);
|
|
|
429
429
|
|
|
430
430
|
- `arraySource`: source path where the engine will seek the information to mapper
|
|
431
431
|
- `arrayTemplate`: template that will be used for each object within the array
|
|
432
|
-
- `ignoreIndexs`: array with the index position that must be ignore
|
|
432
|
+
- `ignoreIndexs`: array with the index position that must be ignore
|
|
433
433
|
|
|
434
434
|
##### File name: baseTransformers.ts
|
|
435
435
|
|
|
@@ -450,29 +450,29 @@ export default transformers;
|
|
|
450
450
|
##### File name: index.ts
|
|
451
451
|
|
|
452
452
|
```javascript
|
|
453
|
-
import { TemplateModule } from
|
|
454
|
-
import baseTransformers from
|
|
453
|
+
import { TemplateModule } from '@edirect/template';
|
|
454
|
+
import baseTransformers from './baseTransformers';
|
|
455
455
|
|
|
456
456
|
const template = {
|
|
457
457
|
quote: {
|
|
458
458
|
orders: {
|
|
459
|
-
arraySource:
|
|
459
|
+
arraySource: 'order',
|
|
460
460
|
arrayTemplate: {
|
|
461
|
-
value:
|
|
462
|
-
date:
|
|
461
|
+
value: 'value',
|
|
462
|
+
date: 'date',
|
|
463
463
|
products: {
|
|
464
|
-
arraySource:
|
|
464
|
+
arraySource: 'products',
|
|
465
465
|
arrayTemplate: {
|
|
466
|
-
id:
|
|
467
|
-
value:
|
|
466
|
+
id: 'id',
|
|
467
|
+
value: 'value',
|
|
468
468
|
description: {
|
|
469
|
-
fields: [
|
|
470
|
-
transformer:
|
|
471
|
-
defaultValue:
|
|
469
|
+
fields: ['description'],
|
|
470
|
+
transformer: 'upperCase',
|
|
471
|
+
defaultValue: 'Default description',
|
|
472
472
|
},
|
|
473
|
-
categories:
|
|
473
|
+
categories: 'categories',
|
|
474
474
|
},
|
|
475
|
-
ignoreIndexs: [0]
|
|
475
|
+
ignoreIndexs: [0],
|
|
476
476
|
},
|
|
477
477
|
},
|
|
478
478
|
},
|
|
@@ -483,24 +483,24 @@ const dataSource = {
|
|
|
483
483
|
order: [
|
|
484
484
|
{
|
|
485
485
|
value: 1000.0,
|
|
486
|
-
date:
|
|
486
|
+
date: '2000-01-01',
|
|
487
487
|
products: [
|
|
488
488
|
{
|
|
489
|
-
id:
|
|
489
|
+
id: 'id-test-1',
|
|
490
490
|
value: 1000,
|
|
491
|
-
description:
|
|
492
|
-
categories: [
|
|
491
|
+
description: 'description-test 1',
|
|
492
|
+
categories: ['category-1'],
|
|
493
493
|
},
|
|
494
494
|
{
|
|
495
|
-
id:
|
|
495
|
+
id: 'id-test-2',
|
|
496
496
|
value: 2000,
|
|
497
|
-
description:
|
|
498
|
-
categories: [
|
|
497
|
+
description: 'description-test 2',
|
|
498
|
+
categories: ['category-1', 'category-2'],
|
|
499
499
|
},
|
|
500
500
|
{
|
|
501
|
-
id:
|
|
501
|
+
id: 'id-test-3',
|
|
502
502
|
value: 3000,
|
|
503
|
-
categories: [
|
|
503
|
+
categories: ['category-1', 'category-2', 'category-3'],
|
|
504
504
|
},
|
|
505
505
|
],
|
|
506
506
|
},
|
|
@@ -577,38 +577,38 @@ export default transformers;
|
|
|
577
577
|
##### File name: index.ts
|
|
578
578
|
|
|
579
579
|
```javascript
|
|
580
|
-
import { TemplateModule } from
|
|
581
|
-
import baseTransformers from
|
|
580
|
+
import { TemplateModule } from '@edirect/template';
|
|
581
|
+
import baseTransformers from './baseTransformers';
|
|
582
582
|
|
|
583
583
|
const template = {
|
|
584
|
-
status:
|
|
584
|
+
status: 'status',
|
|
585
585
|
concatenated_result: {
|
|
586
|
-
fields: [
|
|
587
|
-
transformer:
|
|
586
|
+
fields: ['lead_id'],
|
|
587
|
+
transformer: 'concat',
|
|
588
588
|
transformerParams: [
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
589
|
+
'-',
|
|
590
|
+
'${person_number}',
|
|
591
|
+
'/',
|
|
592
|
+
'${person_number2}',
|
|
593
|
+
'_',
|
|
594
|
+
'${person_number3}',
|
|
595
595
|
],
|
|
596
596
|
},
|
|
597
597
|
concatenated_result2: {
|
|
598
|
-
fields: [
|
|
599
|
-
transformer:
|
|
598
|
+
fields: ['lead_id'],
|
|
599
|
+
transformer: 'concatWithSeparator',
|
|
600
600
|
transformerParams: [
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
601
|
+
'-',
|
|
602
|
+
'${person_number}',
|
|
603
|
+
'${person_number2}',
|
|
604
|
+
'${person_number3}',
|
|
605
605
|
],
|
|
606
606
|
},
|
|
607
607
|
};
|
|
608
608
|
|
|
609
609
|
const dataSource = {
|
|
610
610
|
status: true,
|
|
611
|
-
lead_id:
|
|
611
|
+
lead_id: 'FR-14af3f',
|
|
612
612
|
person_number: 123,
|
|
613
613
|
person_number2: 456,
|
|
614
614
|
person_number3: 789,
|
|
@@ -653,24 +653,24 @@ export default transformers;
|
|
|
653
653
|
##### File name: index.ts
|
|
654
654
|
|
|
655
655
|
```javascript
|
|
656
|
-
import { TemplateModule } from
|
|
657
|
-
import baseTransformers from
|
|
656
|
+
import { TemplateModule } from '@edirect/template';
|
|
657
|
+
import baseTransformers from './baseTransformers';
|
|
658
658
|
|
|
659
659
|
const template = {
|
|
660
660
|
status: {
|
|
661
|
-
fields: [
|
|
662
|
-
transformer:
|
|
661
|
+
fields: ['status'],
|
|
662
|
+
transformer: 'translator',
|
|
663
663
|
transformerParams: [
|
|
664
664
|
{
|
|
665
|
-
ERROR:
|
|
666
|
-
RECHAZADA:
|
|
665
|
+
ERROR: 'ERROR',
|
|
666
|
+
RECHAZADA: 'REJECTED',
|
|
667
667
|
},
|
|
668
668
|
],
|
|
669
669
|
},
|
|
670
670
|
};
|
|
671
671
|
|
|
672
672
|
const dataSource = {
|
|
673
|
-
status:
|
|
673
|
+
status: 'RECHAZADA',
|
|
674
674
|
};
|
|
675
675
|
|
|
676
676
|
const templateModule = new TemplateModule();
|
|
@@ -752,46 +752,38 @@ export default transformers;
|
|
|
752
752
|
##### File name: index.ts
|
|
753
753
|
|
|
754
754
|
```javascript
|
|
755
|
-
import { TemplateModule } from
|
|
756
|
-
import baseTransformers from
|
|
755
|
+
import { TemplateModule } from '@edirect/template';
|
|
756
|
+
import baseTransformers from './baseTransformers';
|
|
757
757
|
|
|
758
758
|
const template = {
|
|
759
759
|
age: {
|
|
760
760
|
transformers: [
|
|
761
761
|
{
|
|
762
|
-
fields: [
|
|
763
|
-
|
|
764
|
-
],
|
|
765
|
-
transformer: "findKeyInArrayGetField",
|
|
766
|
-
transformerParams: [
|
|
767
|
-
"type",
|
|
768
|
-
"birthDate",
|
|
769
|
-
"value"
|
|
770
|
-
]
|
|
762
|
+
fields: ['data.externalReferences'],
|
|
763
|
+
transformer: 'findKeyInArrayGetField',
|
|
764
|
+
transformerParams: ['type', 'birthDate', 'value'],
|
|
771
765
|
},
|
|
772
766
|
{
|
|
773
|
-
transformer:
|
|
774
|
-
transformerParams: [
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
]
|
|
779
|
-
}
|
|
767
|
+
transformer: 'calculateAgeByBirthdate',
|
|
768
|
+
transformerParams: ["yyyy-MM-dd'T'HH:mm:ss.SSSXXX"],
|
|
769
|
+
},
|
|
770
|
+
],
|
|
771
|
+
},
|
|
780
772
|
};
|
|
781
773
|
|
|
782
774
|
const dataSource = {
|
|
783
775
|
data: {
|
|
784
776
|
externalReferences: [
|
|
785
777
|
{
|
|
786
|
-
type:
|
|
787
|
-
value:
|
|
778
|
+
type: 'randomKey',
|
|
779
|
+
value: 'randomValue',
|
|
788
780
|
},
|
|
789
781
|
{
|
|
790
|
-
type:
|
|
791
|
-
value:
|
|
792
|
-
}
|
|
793
|
-
]
|
|
794
|
-
}
|
|
782
|
+
type: 'birthDate',
|
|
783
|
+
value: '1995-12-27T15:22:32.511+00:00',
|
|
784
|
+
},
|
|
785
|
+
],
|
|
786
|
+
},
|
|
795
787
|
};
|
|
796
788
|
|
|
797
789
|
const templateModule = new TemplateModule();
|
|
@@ -809,10 +801,12 @@ console.log(result);
|
|
|
809
801
|
```
|
|
810
802
|
|
|
811
803
|
In this example:
|
|
804
|
+
|
|
812
805
|
1. The first transformer (`findKeyInArrayGetField`) extracts the birthdate value from the array of external references
|
|
813
806
|
2. The second transformer (`calculateAgeByBirthdate`) calculates the age from the birthdate
|
|
814
807
|
|
|
815
808
|
The transformers are applied sequentially, with each one receiving the result of the previous transformation as its input value.
|
|
809
|
+
|
|
816
810
|
### Example with DynamicArrayMapper in transformers array
|
|
817
811
|
|
|
818
812
|
The library now supports using DynamicArrayMapper as an element in the transformers array. This allows you to dynamically process arrays within a transformation sequence.
|
|
@@ -924,6 +918,7 @@ Expected output:
|
|
|
924
918
|
```
|
|
925
919
|
|
|
926
920
|
In this example:
|
|
921
|
+
|
|
927
922
|
1. We have a regular transformer that capitalizes the user's name
|
|
928
923
|
2. The second transformer in the sequence is a DynamicArrayMapper that processes the contacts array
|
|
929
924
|
3. The result is a transformed array of contact information
|
|
@@ -939,17 +934,17 @@ const templateWithMultipleTransformers = {
|
|
|
939
934
|
arraySource: 'contacts',
|
|
940
935
|
arrayTemplate: {
|
|
941
936
|
type: 'type',
|
|
942
|
-
value: 'value'
|
|
943
|
-
}
|
|
937
|
+
value: 'value',
|
|
938
|
+
},
|
|
944
939
|
},
|
|
945
940
|
// Format phone numbers in the array
|
|
946
941
|
{
|
|
947
942
|
fields: ['1.value'], // Access the phone number (index 1 in the array)
|
|
948
943
|
transformer: 'formatPhone',
|
|
949
|
-
allowNull: false
|
|
950
|
-
}
|
|
951
|
-
]
|
|
952
|
-
}
|
|
944
|
+
allowNull: false,
|
|
945
|
+
},
|
|
946
|
+
],
|
|
947
|
+
},
|
|
953
948
|
};
|
|
954
949
|
```
|
|
955
950
|
|
|
@@ -958,7 +953,7 @@ This combination allows for powerful and flexible data transformations.
|
|
|
958
953
|
### Example inferring types to transformPayload
|
|
959
954
|
|
|
960
955
|
```typescript
|
|
961
|
-
import { TemplateModule } from
|
|
956
|
+
import { TemplateModule } from '@edirect/template';
|
|
962
957
|
|
|
963
958
|
interface DataSource {
|
|
964
959
|
subscriber: {
|
|
@@ -974,8 +969,8 @@ interface TransformedData {
|
|
|
974
969
|
|
|
975
970
|
function transformData(dataSource: DataSource): TransformedData {
|
|
976
971
|
const template = {
|
|
977
|
-
edirect_firstname:
|
|
978
|
-
edirect_lastname:
|
|
972
|
+
edirect_firstname: 'subscriber.firstName',
|
|
973
|
+
edirect_lastname: 'subscriber.lastName',
|
|
979
974
|
};
|
|
980
975
|
|
|
981
976
|
const templateModule = new TemplateModule();
|
|
@@ -986,8 +981,8 @@ function transformData(dataSource: DataSource): TransformedData {
|
|
|
986
981
|
|
|
987
982
|
const dataSource = {
|
|
988
983
|
subscriber: {
|
|
989
|
-
firstName:
|
|
990
|
-
lastName:
|
|
984
|
+
firstName: 'template',
|
|
985
|
+
lastName: 'service',
|
|
991
986
|
},
|
|
992
987
|
};
|
|
993
988
|
|
|
@@ -1006,19 +1001,19 @@ Options:
|
|
|
1006
1001
|
- omitEmptyFields?: boolean;
|
|
1007
1002
|
|
|
1008
1003
|
```js
|
|
1009
|
-
import { TemplateModule } from
|
|
1004
|
+
import { TemplateModule } from '@edirect/template';
|
|
1010
1005
|
|
|
1011
1006
|
const template = {
|
|
1012
|
-
edirect_firstname:
|
|
1013
|
-
edirect_lastname:
|
|
1014
|
-
edirect_age:
|
|
1007
|
+
edirect_firstname: 'subscriber.firstName',
|
|
1008
|
+
edirect_lastname: 'subscriber.lastName',
|
|
1009
|
+
edirect_age: 'subscriber.age',
|
|
1015
1010
|
};
|
|
1016
1011
|
|
|
1017
1012
|
const dataSource = {
|
|
1018
1013
|
subscriber: {
|
|
1019
|
-
firstName:
|
|
1020
|
-
lastName:
|
|
1021
|
-
age:
|
|
1014
|
+
firstName: 'template',
|
|
1015
|
+
lastName: 'service',
|
|
1016
|
+
age: '',
|
|
1022
1017
|
},
|
|
1023
1018
|
};
|
|
1024
1019
|
|
|
@@ -1041,24 +1036,24 @@ console.log(result);
|
|
|
1041
1036
|
### Example using simple arrays
|
|
1042
1037
|
|
|
1043
1038
|
```js
|
|
1044
|
-
import { TemplateModule } from
|
|
1039
|
+
import { TemplateModule } from '@edirect/template';
|
|
1045
1040
|
|
|
1046
1041
|
const template = {
|
|
1047
1042
|
emails: {
|
|
1048
|
-
arraySource:
|
|
1043
|
+
arraySource: 'subscriber.emails',
|
|
1049
1044
|
simpleArray: true,
|
|
1050
1045
|
arrayTemplate: {
|
|
1051
1046
|
type: {
|
|
1052
|
-
defaultValue:
|
|
1047
|
+
defaultValue: 'personal',
|
|
1053
1048
|
},
|
|
1054
|
-
value:
|
|
1049
|
+
value: 'value',
|
|
1055
1050
|
},
|
|
1056
1051
|
},
|
|
1057
1052
|
};
|
|
1058
1053
|
|
|
1059
1054
|
const dataSource = {
|
|
1060
1055
|
subscriber: {
|
|
1061
|
-
emails: [
|
|
1056
|
+
emails: ['johndoe@example.com', 'janedoe@example.com'],
|
|
1062
1057
|
},
|
|
1063
1058
|
};
|
|
1064
1059
|
|
|
@@ -1083,4 +1078,4 @@ console.log(result);
|
|
|
1083
1078
|
]
|
|
1084
1079
|
}
|
|
1085
1080
|
*/
|
|
1086
|
-
```
|
|
1081
|
+
```
|