@edirect/template 11.0.46 → 11.0.47

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.
@@ -1 +1 @@
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
+ {"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;IA4BtD,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;IA6LJ,OAAO,CAAC,2BAA2B;CA4HpC"}
@@ -69,6 +69,16 @@ class TemplateModule {
69
69
  }
70
70
  checkValue(value, allowNull = false) {
71
71
  const omitEmptyFields = this.options?.omitEmptyFields ?? false;
72
+ const omitEmptyCollections = this.options?.omitEmptyCollections ?? false;
73
+ const isEmptyArray = Array.isArray(value) && value.length === 0;
74
+ const isEmptyObject = value !== null &&
75
+ typeof value === 'object' &&
76
+ !Array.isArray(value) &&
77
+ Object.keys(value).length === 0;
78
+ if ((omitEmptyCollections || allowNull) &&
79
+ (isEmptyArray || isEmptyObject)) {
80
+ return false;
81
+ }
72
82
  return !!(value ||
73
83
  allowNull ||
74
84
  typeof value === 'boolean' ||
@@ -113,7 +123,7 @@ class TemplateModule {
113
123
  }
114
124
  // handle dynamic array mapper
115
125
  if (this.isDynamicArrayMapper(target)) {
116
- const { arraySource, arrayTemplate, ignoreIndexs } = target;
126
+ const { arraySource, arrayTemplate, arrayOmitIfEmpty, ignoreIndexs } = target;
117
127
  value = (0, lodash_1.get)(dataSource, arraySource);
118
128
  if ((0, lodash_1.isArray)(value)) {
119
129
  const finalArray = [];
@@ -135,9 +145,9 @@ class TemplateModule {
135
145
  this.isValidObject(value))
136
146
  finalArray.push(value);
137
147
  }
138
- return this.setValueByCondition(acc, key, finalArray);
148
+ return this.setValueByCondition(acc, key, finalArray, arrayOmitIfEmpty);
139
149
  }
140
- return this.setValueByCondition(acc, key, []);
150
+ return this.setValueByCondition(acc, key, [], arrayOmitIfEmpty);
141
151
  }
142
152
  // handle nested object + transformers
143
153
  if (this.isValidObject(target)) {
@@ -8,6 +8,7 @@ export interface ITransformer {
8
8
  export interface IDynamicArrayMapper {
9
9
  arraySource: string;
10
10
  arrayTemplate: Record<string, unknown>;
11
+ arrayOmitIfEmpty?: boolean;
11
12
  ignoreIndexs?: number[];
12
13
  simpleArray?: boolean;
13
14
  }
@@ -20,6 +21,7 @@ export interface ITransformerDefinition {
20
21
  }
21
22
  export interface ITemplateOptions {
22
23
  omitEmptyFields?: boolean;
24
+ omitEmptyCollections?: boolean;
23
25
  }
24
26
  export type TransformerElement = ITransformerDefinition | IDynamicArrayMapper;
25
27
  export interface ITemplateModule {
@@ -1 +1 @@
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
+ {"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,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,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;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edirect/template",
3
- "version": "11.0.46",
3
+ "version": "11.0.47",
4
4
  "packageScope": "@edirect",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",