@punks/backend-entity-manager 0.0.415 → 0.0.417

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/cjs/index.js CHANGED
@@ -200,10 +200,27 @@ class EntitySeeder {
200
200
 
201
201
  const DEFAULT_DELIMITER$1 = ";";
202
202
  const DEFAULT_ARRAY_SEPARATOR$1 = "|";
203
+ const MODIFIER_FNS = {
204
+ lowercase: (value) => value?.toString()?.toLowerCase(),
205
+ uppercase: (value) => value?.toString()?.toUpperCase(),
206
+ trim: (value) => value?.toString()?.trim(),
207
+ };
208
+ const applyModifiers = (value, modifiers) => {
209
+ return modifiers
210
+ ? modifiers.reduce((acc, x) => MODIFIER_FNS[x](acc), value)
211
+ : value;
212
+ };
213
+ const isValidValue = (value) => {
214
+ if (typeof value === "string")
215
+ return value.trim().length > 0;
216
+ return true;
217
+ };
203
218
  const normalizeSheetColumn = (column) => column.replace(/ /g, "").toLowerCase();
204
219
  const getRealSeparator = (separator) => {
205
220
  if (!separator)
206
221
  return DEFAULT_ARRAY_SEPARATOR$1;
222
+ if (Array.isArray(separator))
223
+ return separator[0];
207
224
  if (typeof separator === "string")
208
225
  return separator;
209
226
  if (separator instanceof RegExp) {
@@ -213,10 +230,9 @@ const getRealSeparator = (separator) => {
213
230
  }
214
231
  return DEFAULT_ARRAY_SEPARATOR$1;
215
232
  };
216
- const splitArrayColumn = (value, separator) => value
217
- ?.toString()
218
- .split(separator ?? DEFAULT_ARRAY_SEPARATOR$1)
219
- .filter((x) => x.trim()) ?? [];
233
+ const splitArrayColumn = (value, separator) => {
234
+ return value?.toString().split(separator ?? DEFAULT_ARRAY_SEPARATOR$1) ?? [];
235
+ };
220
236
  const joinArrayColumn$1 = (value, separator) => value
221
237
  ?.map((x) => x.toString().trim())
222
238
  .filter((x) => x)
@@ -283,7 +299,9 @@ class EntitySerializer {
283
299
  const parsedColumn = this.parseColumnValue(record, column);
284
300
  entity[column.selector] = column.array
285
301
  ? splitArrayColumn(parsedColumn, column.arraySeparator)
286
- : parsedColumn;
302
+ .map((x) => applyModifiers(x, column.modifiers))
303
+ .filter((x) => isValidValue(x))
304
+ : applyModifiers(parsedColumn, column.modifiers);
287
305
  }
288
306
  const validationErrors = [];
289
307
  for (const column of definition.columns) {