@edirect/template 1.5.1 → 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 CHANGED
@@ -11,7 +11,7 @@ $ npm i --save @edirect/template
11
11
  ### Import
12
12
 
13
13
  ```javascript
14
- import { TemplateModule } from "./TemplateModule";
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 "@edirect/template";
69
+ import { TemplateModule } from '@edirect/template';
70
70
 
71
71
  const template = {
72
- edirect_firstname: "subscriber.firstName",
73
- edirect_lastname: "subscriber.lastName",
72
+ edirect_firstname: 'subscriber.firstName',
73
+ edirect_lastname: 'subscriber.lastName',
74
74
  };
75
75
 
76
76
  const dataSource = {
77
77
  subscriber: {
78
- firstName: "template",
79
- lastName: "service",
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 "@edirect/template";
151
- import baseTransformers from "./baseTransformers";
150
+ import { TemplateModule } from '@edirect/template';
151
+ import baseTransformers from './baseTransformers';
152
152
 
153
153
  const template = {
154
154
  edirect_firstname: {
155
- fields: ["firstName", "subscriber.firstName"],
156
- transformer: "upperCase",
157
- defaultValue: "First Name - Default",
155
+ fields: ['firstName', 'subscriber.firstName'],
156
+ transformer: 'upperCase',
157
+ defaultValue: 'First Name - Default',
158
158
  },
159
159
  edirect_lastname: {
160
- fields: ["lastName", "subscriber.lastName"],
160
+ fields: ['lastName', 'subscriber.lastName'],
161
161
  },
162
162
  edirect_fullname: {
163
- transformer: "fullName",
163
+ transformer: 'fullName',
164
164
  },
165
165
  edirect_phone: {
166
- fields: ["phoneNumber", "subscriber.phoneNumber"],
167
- defaultValue: "999999999",
166
+ fields: ['phoneNumber', 'subscriber.phoneNumber'],
167
+ defaultValue: '999999999',
168
168
  },
169
169
  timeZone: {
170
- defaultValue: "Time zone in Porto (GMT+1)",
170
+ defaultValue: 'Time zone in Porto (GMT+1)',
171
171
  },
172
172
  };
173
173
 
174
174
  const dataSource = {
175
175
  subscriber: {
176
- firstName: "template",
177
- lastName: "service",
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 "@edirect/template";
223
- import baseTransformers from "./baseTransformers";
222
+ import { TemplateModule } from '@edirect/template';
223
+ import baseTransformers from './baseTransformers';
224
224
 
225
225
  const template = {
226
226
  order: {
227
- date: "order.date",
228
- value: "order.value",
227
+ date: 'order.date',
228
+ value: 'order.value',
229
229
  subscriber: {
230
- name: "sub.name",
231
- phone: "sub.phone",
230
+ name: 'sub.name',
231
+ phone: 'sub.phone',
232
232
  email: {
233
- fields: ["email", "sub.email"],
233
+ fields: ['email', 'sub.email'],
234
234
  },
235
235
  address: {
236
- street: "sub.add.stt",
237
- number: "sub.add.num",
236
+ street: 'sub.add.stt',
237
+ number: 'sub.add.num',
238
238
  city: {
239
- fields: ["sub.add.city"],
240
- transformer: "upperCase",
239
+ fields: ['sub.add.city'],
240
+ transformer: 'upperCase',
241
241
  },
242
242
  state: {
243
- fields: ["sub.add.stt"],
244
- transformer: "upperCase",
243
+ fields: ['sub.add.stt'],
244
+ transformer: 'upperCase',
245
245
  },
246
246
  zip: {
247
- fields: ["sub.add.zip"],
248
- defaultValue: "0000-000",
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: "2000-01-01",
258
+ date: '2000-01-01',
259
259
  },
260
260
  sub: {
261
- name: "name-test",
262
- phone: "999999999",
263
- email: "template.service@bolltech.io",
261
+ name: 'name-test',
262
+ phone: '999999999',
263
+ email: 'template.service@bolltech.io',
264
264
  add: {
265
- st: "st-test",
265
+ st: 'st-test',
266
266
  num: 100,
267
- city: "city-test",
268
- stt: "state-test",
269
- zip: "zip-test",
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 "@edirect/template";
330
- import baseTransformers from "./baseTransformers";
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: "order",
335
+ arraySource: 'order',
336
336
  arrayTemplate: {
337
- value: "value",
338
- date: "date",
337
+ value: 'value',
338
+ date: 'date',
339
339
  products: {
340
- arraySource: "products",
340
+ arraySource: 'products',
341
341
  arrayTemplate: {
342
- id: "id",
343
- value: "value",
342
+ id: 'id',
343
+ value: 'value',
344
344
  description: {
345
- fields: ["description"],
346
- transformer: "upperCase",
347
- defaultValue: "Default description",
345
+ fields: ['description'],
346
+ transformer: 'upperCase',
347
+ defaultValue: 'Default description',
348
348
  },
349
- categories: "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: "2000-01-01",
361
+ date: '2000-01-01',
362
362
  products: [
363
363
  {
364
- id: "id-test-1",
364
+ id: 'id-test-1',
365
365
  value: 1000,
366
- description: "description-test 1",
367
- categories: ["category-1"],
366
+ description: 'description-test 1',
367
+ categories: ['category-1'],
368
368
  },
369
369
  {
370
- id: "id-test-2",
370
+ id: 'id-test-2',
371
371
  value: 2000,
372
- description: "description-test 2",
373
- categories: ["category-1", "category-2"],
372
+ description: 'description-test 2',
373
+ categories: ['category-1', 'category-2'],
374
374
  },
375
375
  {
376
- id: "id-test-3",
376
+ id: 'id-test-3',
377
377
  value: 3000,
378
- categories: ["category-1", "category-2", "category-3"],
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 "@edirect/template";
454
- import baseTransformers from "./baseTransformers";
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: "order",
459
+ arraySource: 'order',
460
460
  arrayTemplate: {
461
- value: "value",
462
- date: "date",
461
+ value: 'value',
462
+ date: 'date',
463
463
  products: {
464
- arraySource: "products",
464
+ arraySource: 'products',
465
465
  arrayTemplate: {
466
- id: "id",
467
- value: "value",
466
+ id: 'id',
467
+ value: 'value',
468
468
  description: {
469
- fields: ["description"],
470
- transformer: "upperCase",
471
- defaultValue: "Default description",
469
+ fields: ['description'],
470
+ transformer: 'upperCase',
471
+ defaultValue: 'Default description',
472
472
  },
473
- categories: "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: "2000-01-01",
486
+ date: '2000-01-01',
487
487
  products: [
488
488
  {
489
- id: "id-test-1",
489
+ id: 'id-test-1',
490
490
  value: 1000,
491
- description: "description-test 1",
492
- categories: ["category-1"],
491
+ description: 'description-test 1',
492
+ categories: ['category-1'],
493
493
  },
494
494
  {
495
- id: "id-test-2",
495
+ id: 'id-test-2',
496
496
  value: 2000,
497
- description: "description-test 2",
498
- categories: ["category-1", "category-2"],
497
+ description: 'description-test 2',
498
+ categories: ['category-1', 'category-2'],
499
499
  },
500
500
  {
501
- id: "id-test-3",
501
+ id: 'id-test-3',
502
502
  value: 3000,
503
- categories: ["category-1", "category-2", "category-3"],
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 "@edirect/template";
581
- import baseTransformers from "./baseTransformers";
580
+ import { TemplateModule } from '@edirect/template';
581
+ import baseTransformers from './baseTransformers';
582
582
 
583
583
  const template = {
584
- status: "status",
584
+ status: 'status',
585
585
  concatenated_result: {
586
- fields: ["lead_id"],
587
- transformer: "concat",
586
+ fields: ['lead_id'],
587
+ transformer: 'concat',
588
588
  transformerParams: [
589
- "-",
590
- "${person_number}",
591
- "/",
592
- "${person_number2}",
593
- "_",
594
- "${person_number3}",
589
+ '-',
590
+ '${person_number}',
591
+ '/',
592
+ '${person_number2}',
593
+ '_',
594
+ '${person_number3}',
595
595
  ],
596
596
  },
597
597
  concatenated_result2: {
598
- fields: ["lead_id"],
599
- transformer: "concatWithSeparator",
598
+ fields: ['lead_id'],
599
+ transformer: 'concatWithSeparator',
600
600
  transformerParams: [
601
- "-",
602
- "${person_number}",
603
- "${person_number2}",
604
- "${person_number3}",
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: "FR-14af3f",
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 "@edirect/template";
657
- import baseTransformers from "./baseTransformers";
656
+ import { TemplateModule } from '@edirect/template';
657
+ import baseTransformers from './baseTransformers';
658
658
 
659
659
  const template = {
660
660
  status: {
661
- fields: ["status"],
662
- transformer: "translator",
661
+ fields: ['status'],
662
+ transformer: 'translator',
663
663
  transformerParams: [
664
664
  {
665
- ERROR: "ERROR",
666
- RECHAZADA: "REJECTED",
665
+ ERROR: 'ERROR',
666
+ RECHAZADA: 'REJECTED',
667
667
  },
668
668
  ],
669
669
  },
670
670
  };
671
671
 
672
672
  const dataSource = {
673
- status: "RECHAZADA",
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 "@edirect/template";
756
- import baseTransformers from "./baseTransformers";
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
- "data.externalReferences"
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: "calculateAgeByBirthdate",
774
- transformerParams: [
775
- "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
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: "randomKey",
787
- value: "randomValue"
778
+ type: 'randomKey',
779
+ value: 'randomValue',
788
780
  },
789
781
  {
790
- type: "birthDate",
791
- value: "1995-12-27T15:22:32.511+00:00"
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 "@edirect/template";
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: "subscriber.firstName",
978
- edirect_lastname: "subscriber.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: "template",
990
- lastName: "service",
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 "@edirect/template";
1004
+ import { TemplateModule } from '@edirect/template';
1010
1005
 
1011
1006
  const template = {
1012
- edirect_firstname: "subscriber.firstName",
1013
- edirect_lastname: "subscriber.lastName",
1014
- edirect_age: "subscriber.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: "template",
1020
- lastName: "service",
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 "@edirect/template";
1039
+ import { TemplateModule } from '@edirect/template';
1045
1040
 
1046
1041
  const template = {
1047
1042
  emails: {
1048
- arraySource: "subscriber.emails",
1043
+ arraySource: 'subscriber.emails',
1049
1044
  simpleArray: true,
1050
1045
  arrayTemplate: {
1051
1046
  type: {
1052
- defaultValue: "personal",
1047
+ defaultValue: 'personal',
1053
1048
  },
1054
- value: "value",
1049
+ value: 'value',
1055
1050
  },
1056
1051
  },
1057
1052
  };
1058
1053
 
1059
1054
  const dataSource = {
1060
1055
  subscriber: {
1061
- emails: ["johndoe@example.com", "janedoe@example.com"],
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
+ ```