@edirect/template 11.0.44 → 11.0.45

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/package.json DELETED
@@ -1,27 +0,0 @@
1
- {
2
- "name": "@edirect/template",
3
- "version": "11.0.43",
4
- "main": "./dist/src/index.js",
5
- "types": "./dist/src/index.d.ts",
6
- "exports": {
7
- ".": {
8
- "import": "./dist/src/index.js",
9
- "default": "./dist/src/index.js",
10
- "require": "./dist/src/index.js",
11
- "types": "./dist/src/index.d.ts"
12
- },
13
- "./package.json": "./package.json"
14
- },
15
- "files": [
16
- "dist"
17
- ],
18
- "dependencies": {
19
- "lodash": "^4.17.23",
20
- "tslib": "^2.8.1"
21
- },
22
- "devDependencies": {
23
- "@types/lodash": "^4.17.23",
24
- "@types/node": "^25.0.10"
25
- },
26
- "type": "commonjs"
27
- }
@@ -1,3 +0,0 @@
1
- export * from './templateModule';
2
- export * from './templateModule/interfaces';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC"}
package/dist/src/index.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./templateModule"), exports);
5
- tslib_1.__exportStar(require("./templateModule/interfaces"), exports);
@@ -1,27 +0,0 @@
1
- import { ITemplateModule, ITemplateOptions, ITransformer } from './interfaces';
2
- export declare class TemplateModule implements ITemplateModule {
3
- private context;
4
- private template;
5
- private transformers;
6
- private options;
7
- setContext(context: Record<string, unknown>): void;
8
- setTemplate(template: Record<string, unknown>): void;
9
- setTransformers(transformers: ITransformer): void;
10
- setOptions(options: ITemplateOptions): void;
11
- verifyTransformer(transformer: ITransformer, methodName: string): boolean;
12
- runTransformer(transformer: string, value?: unknown): unknown | null;
13
- runTransformerWithParams(transformer: string, params: unknown[], value?: unknown): unknown | null;
14
- setValueByCondition<U>(object: U, key: string, value: unknown, allowNull?: boolean): U;
15
- isTransformer(object: Record<string, unknown>): boolean;
16
- isTransformers(object: Record<string, unknown>): boolean;
17
- isStaticArrayMapper(object: Record<string, unknown>): boolean;
18
- isDynamicArrayMapper(object: Record<string, unknown>): boolean;
19
- isValidObject(object: object): boolean;
20
- checkValue(value: unknown, allowNull?: boolean): boolean;
21
- containsVar(value: string): boolean;
22
- getVarOnConst(varName: string, context: object): unknown;
23
- simpleValueToObject(value: unknown): Record<string, unknown>;
24
- transformPayload<T>(dataSource: object, template?: Record<string, unknown>, rootData?: object): T;
25
- private applySequentialTransformers;
26
- }
27
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templateModule/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,YAAY,EAGb,MAAM,cAAc,CAAC;AAEtB,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,OAAO,CAAwB;IAEvC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIlD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAIjD,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI3C,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAQzE,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAOpE,wBAAwB,CACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,GAAG,IAAI;IAUjB,mBAAmB,CAAC,CAAC,EACnB,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,SAAS,UAAQ,GAChB,CAAC;IASJ,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAUvD,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAMxD,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAI7D,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAI9D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUtC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,UAAQ,GAAG,OAAO;IActD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAKxD,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrD,gBAAgB,CAAC,CAAC,EACvB,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAiB,EACjD,QAAQ,CAAC,EAAE,MAAM,GAChB,CAAC;IAwLJ,OAAO,CAAC,2BAA2B;CA4HpC"}
@@ -1,282 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TemplateModule = void 0;
4
- const lodash_1 = require("lodash");
5
- class TemplateModule {
6
- context = {};
7
- template = {};
8
- transformers = {};
9
- options = {};
10
- setContext(context) {
11
- this.context = context;
12
- }
13
- setTemplate(template) {
14
- this.template = template;
15
- }
16
- setTransformers(transformers) {
17
- this.transformers = transformers;
18
- }
19
- setOptions(options) {
20
- this.options = options;
21
- }
22
- verifyTransformer(transformer, methodName) {
23
- return !!(transformer &&
24
- transformer[methodName] &&
25
- typeof transformer[methodName] === 'function');
26
- }
27
- runTransformer(transformer, value) {
28
- if (this.verifyTransformer(this.transformers, transformer)) {
29
- return this.transformers[transformer]({ context: this.context, value });
30
- }
31
- return undefined;
32
- }
33
- runTransformerWithParams(transformer, params, value) {
34
- if (this.verifyTransformer(this.transformers, transformer)) {
35
- return this.transformers[transformer]({ context: this.context, value }, ...params);
36
- }
37
- return null;
38
- }
39
- setValueByCondition(object, key, value, allowNull = false) {
40
- return this.checkValue(value, allowNull)
41
- ? {
42
- ...object,
43
- [key]: value,
44
- }
45
- : object;
46
- }
47
- isTransformer(object) {
48
- return !!((0, lodash_1.has)(object, 'transformer') ||
49
- (0, lodash_1.has)(object, 'fields') ||
50
- (0, lodash_1.has)(object, 'defaultValue') ||
51
- (0, lodash_1.has)(object, 'transformers') ||
52
- ((0, lodash_1.has)(object, 'transformerParams') && (0, lodash_1.has)(object, 'transformer')));
53
- }
54
- isTransformers(object) {
55
- return !!((0, lodash_1.has)(object, 'transformers') && Array.isArray(object.transformers));
56
- }
57
- isStaticArrayMapper(object) {
58
- return Array.isArray(object);
59
- }
60
- isDynamicArrayMapper(object) {
61
- return !!((0, lodash_1.has)(object, 'arraySource') && (0, lodash_1.has)(object, 'arrayTemplate'));
62
- }
63
- isValidObject(object) {
64
- return (!!object &&
65
- typeof object === 'object' &&
66
- Object.keys(object).length > 0 &&
67
- Object.getPrototypeOf(object) !== null &&
68
- Object.getPrototypeOf(object) === Object.prototype);
69
- }
70
- checkValue(value, allowNull = false) {
71
- const omitEmptyFields = this.options?.omitEmptyFields ?? false;
72
- return !!(value ||
73
- allowNull ||
74
- typeof value === 'boolean' ||
75
- typeof value === 'number' ||
76
- (omitEmptyFields
77
- ? typeof value === 'string' && value !== ''
78
- : typeof value === 'string'));
79
- }
80
- containsVar(value) {
81
- return !!value.match(/^\$\{[a-z_0-9\-.]+\}$/gi);
82
- }
83
- getVarOnConst(varName, context) {
84
- varName = varName.substring(2, varName.length - 1);
85
- return (0, lodash_1.get)(context, varName);
86
- }
87
- simpleValueToObject(value) {
88
- return { value };
89
- }
90
- transformPayload(dataSource, template = this.template, rootData) {
91
- if (!template)
92
- return {};
93
- if (rootData === undefined)
94
- rootData = dataSource;
95
- return Object.keys(template).reduce((acc, key) => {
96
- const target = template[key];
97
- let value = (0, lodash_1.get)(dataSource, target);
98
- // handle static array mapper
99
- if (this.isStaticArrayMapper(target)) {
100
- const finalArray = [];
101
- const arrayTargets = target;
102
- for (const arrayTemplate of arrayTargets) {
103
- if (this.isValidObject(arrayTemplate)) {
104
- value = this.transformPayload(dataSource, arrayTemplate);
105
- if (this.checkValue(value) &&
106
- typeof value === 'object' &&
107
- value !== null &&
108
- this.isValidObject(value))
109
- finalArray.push(value);
110
- }
111
- }
112
- return this.setValueByCondition(acc, key, finalArray);
113
- }
114
- // handle dynamic array mapper
115
- if (this.isDynamicArrayMapper(target)) {
116
- const { arraySource, arrayTemplate, ignoreIndexs } = target;
117
- value = (0, lodash_1.get)(dataSource, arraySource);
118
- if ((0, lodash_1.isArray)(value)) {
119
- const finalArray = [];
120
- for (const [index, arrayItem] of value.entries()) {
121
- if (ignoreIndexs &&
122
- Array.isArray(ignoreIndexs) &&
123
- ignoreIndexs.includes(index))
124
- continue;
125
- if (target.simpleArray) {
126
- const source = this.simpleValueToObject(arrayItem);
127
- value = this.transformPayload(source, arrayTemplate);
128
- }
129
- else {
130
- value = this.transformPayload(arrayItem, arrayTemplate, rootData);
131
- }
132
- if (this.checkValue(value) &&
133
- typeof value === 'object' &&
134
- value !== null &&
135
- this.isValidObject(value))
136
- finalArray.push(value);
137
- }
138
- return this.setValueByCondition(acc, key, finalArray);
139
- }
140
- return this.setValueByCondition(acc, key, []);
141
- }
142
- // handle nested object + transformers
143
- if (this.isValidObject(target)) {
144
- // identify a nested object
145
- if (!this.isTransformer(target)) {
146
- return this.setValueByCondition(acc, key, this.transformPayload(dataSource, target));
147
- }
148
- // Handle array of transformers
149
- if ((0, lodash_1.has)(target, 'transformers') && Array.isArray(target.transformers)) {
150
- value = this.applySequentialTransformers(target, dataSource, rootData);
151
- }
152
- else {
153
- // Handle single transformer (backward compatibility)
154
- const { fields, transformer, transformerParams, defaultValue, allowNull, } = target;
155
- const transformedTransformParams = [];
156
- if (transformerParams && Array.isArray(transformerParams)) {
157
- transformedTransformParams.push(...transformerParams.map(param => {
158
- if (!(0, lodash_1.isString)(param) || !this.containsVar(param))
159
- return param;
160
- return (this.getVarOnConst(param, dataSource) ||
161
- this.getVarOnConst(param, rootData));
162
- }));
163
- }
164
- if (fields && Array.isArray(fields)) {
165
- for (const field of fields) {
166
- value = (0, lodash_1.get)(dataSource, field);
167
- if (transformer && transformedTransformParams.length)
168
- value = this.runTransformerWithParams(transformer, transformedTransformParams, value);
169
- else if (transformer)
170
- value = this.runTransformer(transformer, value);
171
- if (this.checkValue(value, !!allowNull))
172
- break;
173
- }
174
- }
175
- else {
176
- if (transformer && transformedTransformParams.length)
177
- value = this.runTransformerWithParams(transformer, transformedTransformParams);
178
- else if (transformer)
179
- value = this.runTransformer(transformer);
180
- }
181
- value = this.checkValue(value, !!allowNull) ? value : defaultValue;
182
- }
183
- // Use the allowNull value from the last transformer or target object
184
- const useAllowNull = (0, lodash_1.has)(target, 'transformers') && Array.isArray(target.transformers)
185
- ? // Find the last transformer that's not a DynamicArrayMapper
186
- !!target.transformers
187
- .filter(t => !this.isDynamicArrayMapper(t))
188
- .slice(-1)[0] &&
189
- 'allowNull' in
190
- target.transformers
191
- .filter(t => !this.isDynamicArrayMapper(t))
192
- .slice(-1)[0]
193
- ? target.transformers
194
- .filter(t => !this.isDynamicArrayMapper(t))
195
- .slice(-1)[0].allowNull
196
- : false
197
- : !!target.allowNull;
198
- return this.setValueByCondition(acc, key, value, useAllowNull);
199
- }
200
- // handle simple mapper
201
- return this.setValueByCondition(acc, key, value);
202
- }, {});
203
- }
204
- applySequentialTransformers(target, dataSource, rootData) {
205
- let transformedValue = null;
206
- const transformers = target.transformers;
207
- for (const transformer of transformers) {
208
- // Handle DynamicArrayMapper within the transformers array
209
- if (this.isDynamicArrayMapper(transformer)) {
210
- const dynamicArrayMapper = transformer;
211
- const { arraySource, arrayTemplate, ignoreIndexs, simpleArray } = dynamicArrayMapper;
212
- const arrayData = (0, lodash_1.get)(dataSource, arraySource);
213
- if ((0, lodash_1.isArray)(arrayData)) {
214
- const finalArray = [];
215
- for (const [index, arrayItem] of arrayData.entries()) {
216
- if (ignoreIndexs && ignoreIndexs.includes(index))
217
- continue;
218
- let processedItem;
219
- if (simpleArray) {
220
- const source = this.simpleValueToObject(arrayItem);
221
- processedItem = this.transformPayload(source, arrayTemplate);
222
- }
223
- else {
224
- processedItem = this.transformPayload(arrayItem, arrayTemplate, rootData);
225
- }
226
- if (this.checkValue(processedItem) &&
227
- typeof processedItem === 'object' &&
228
- processedItem !== null &&
229
- this.isValidObject(processedItem)) {
230
- finalArray.push(processedItem);
231
- }
232
- }
233
- transformedValue = finalArray;
234
- }
235
- else {
236
- transformedValue = [];
237
- }
238
- continue;
239
- }
240
- // Handle standard transformer
241
- const { fields, transformer: transformerName, transformerParams, defaultValue, allowNull, } = transformer;
242
- const transformedTransformParams = [];
243
- if (transformerParams && Array.isArray(transformerParams)) {
244
- transformedTransformParams.push(...transformerParams.map(param => {
245
- if (!(0, lodash_1.isString)(param) || !this.containsVar(param))
246
- return param;
247
- return (this.getVarOnConst(param, dataSource) ||
248
- this.getVarOnConst(param, rootData));
249
- }));
250
- }
251
- if (fields && Array.isArray(fields)) {
252
- for (const field of fields) {
253
- transformedValue =
254
- transformedValue === null
255
- ? (0, lodash_1.get)(dataSource, field)
256
- : transformedValue;
257
- if (transformerName && transformedTransformParams.length) {
258
- transformedValue = this.runTransformerWithParams(transformerName, transformedTransformParams, transformedValue);
259
- }
260
- else if (transformerName) {
261
- transformedValue = this.runTransformer(transformerName, transformedValue);
262
- }
263
- if (this.checkValue(transformedValue, !!allowNull))
264
- break;
265
- }
266
- }
267
- else {
268
- if (transformerName && transformedTransformParams.length) {
269
- transformedValue = this.runTransformerWithParams(transformerName, transformedTransformParams, transformedValue);
270
- }
271
- else if (transformerName) {
272
- transformedValue = this.runTransformer(transformerName, transformedValue);
273
- }
274
- }
275
- if (!this.checkValue(transformedValue, !!allowNull)) {
276
- transformedValue = defaultValue;
277
- }
278
- }
279
- return transformedValue;
280
- }
281
- }
282
- exports.TemplateModule = TemplateModule;
@@ -1,41 +0,0 @@
1
- export interface ITransformerParams {
2
- context?: Record<string, unknown>;
3
- value?: unknown;
4
- }
5
- export interface ITransformer {
6
- [x: string]: ({ context, value }: ITransformerParams, ...params: unknown[]) => unknown;
7
- }
8
- export interface IDynamicArrayMapper {
9
- arraySource: string;
10
- arrayTemplate: Record<string, unknown>;
11
- ignoreIndexs?: number[];
12
- simpleArray?: boolean;
13
- }
14
- export interface ITransformerDefinition {
15
- fields?: string[];
16
- transformer: string;
17
- transformerParams?: unknown[];
18
- defaultValue?: unknown;
19
- allowNull?: boolean;
20
- }
21
- export interface ITemplateOptions {
22
- omitEmptyFields?: boolean;
23
- }
24
- export type TransformerElement = ITransformerDefinition | IDynamicArrayMapper;
25
- export interface ITemplateModule {
26
- setContext(context: Record<string, unknown>): void;
27
- setTemplate(template: Record<string, unknown>): void;
28
- setTransformers(transformers: ITransformer): void;
29
- setOptions(settings: ITemplateOptions): void;
30
- verifyTransformer(transformer: ITransformer, methodName: string): boolean;
31
- runTransformer(transformer: string, value?: unknown): unknown | null;
32
- setValueByCondition<U>(object: U, key: string, value: unknown): U;
33
- isTransformer(object: Record<string, unknown>): boolean;
34
- isTransformers(object: Record<string, unknown>): boolean;
35
- isStaticArrayMapper(object: Record<string, unknown>): boolean;
36
- isDynamicArrayMapper(object: Record<string, unknown>): boolean;
37
- isValidObject(object: object): boolean;
38
- checkValue(value: unknown): boolean;
39
- transformPayload<T>(obj: object, template?: Record<string, unknown>): T;
40
- }
41
- //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/templateModule/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,CACX,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,kBAAkB,EACtC,GAAG,MAAM,EAAE,OAAO,EAAE,KACjB,OAAO,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClD,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC7C,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1E,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;IACrE,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;IAClE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IACxD,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IACzD,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC9D,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;CACzE"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- {"version":"5.9.3"}