@punks/backend-entity-manager 0.0.427 → 0.0.429
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 +7 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/serializer.d.ts +3 -0
- package/dist/esm/index.js +7 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/serializer.d.ts +3 -0
- package/dist/index.d.ts +4 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -278,24 +278,20 @@ class EntitySerializer {
|
|
|
278
278
|
const records = backendCore.excelParse(data, {
|
|
279
279
|
keysTransform: backendCore.ExcelKeyTransform.Lower,
|
|
280
280
|
dateColumns: dateColumns.map((x) => x.name),
|
|
281
|
+
...(definition?.options ? definition.options : {}),
|
|
281
282
|
});
|
|
282
|
-
return
|
|
283
|
-
? records.map((x, i) => this.convertSheetRecord(x, definition, i))
|
|
284
|
-
: Object.values(records)
|
|
285
|
-
.flat()
|
|
286
|
-
.map((x, i) => this.convertSheetRecord(x, definition, i));
|
|
283
|
+
return records.map((x, i) => this.convertSheetRecord(x, definition, i));
|
|
287
284
|
}
|
|
288
285
|
convertSheetRecord(record, definition, rowIndex) {
|
|
289
|
-
console.log("record", record);
|
|
290
|
-
console.log("definition", definition);
|
|
291
|
-
console.log("rowIndex", rowIndex);
|
|
292
286
|
if (definition.sheet?.useTypeColumn &&
|
|
293
287
|
(!record._type || record._type !== this.entityName)) {
|
|
294
288
|
throw new Error(`Invalid record type ${record._type} -> record: \n${JSON.stringify(record)}`);
|
|
295
289
|
}
|
|
296
|
-
const entity = {};
|
|
290
|
+
const entity = (definition.autoColumns ? { ...record } : {});
|
|
297
291
|
for (const column of definition.columns) {
|
|
298
292
|
const columnName = normalizeSheetColumn(column.name);
|
|
293
|
+
if (!(columnName in record))
|
|
294
|
+
continue;
|
|
299
295
|
if (column.parseAction) {
|
|
300
296
|
column.parseAction(record[columnName], entity);
|
|
301
297
|
continue;
|
|
@@ -312,6 +308,8 @@ class EntitySerializer {
|
|
|
312
308
|
}
|
|
313
309
|
const validationErrors = [];
|
|
314
310
|
for (const column of definition.columns) {
|
|
311
|
+
if (!(normalizeSheetColumn(column.name) in record))
|
|
312
|
+
continue;
|
|
315
313
|
for (const validator of column.validators ?? []) {
|
|
316
314
|
const result = validator.fn(entity);
|
|
317
315
|
if (!result.isValid) {
|