@forestadmin/datasource-customizer 1.45.2 → 1.45.3
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.
|
@@ -10,5 +10,6 @@ export default class OverrideCollectionDecorator extends CollectionDecorator {
|
|
|
10
10
|
addUpdateHandler(handler: UpdateOverrideHandler): void;
|
|
11
11
|
delete(caller: Caller, filter: Filter): Promise<void>;
|
|
12
12
|
addDeleteHandler(handler: UpdateOverrideHandler): void;
|
|
13
|
+
private cleanRecordsInPlace;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -6,7 +6,9 @@ class OverrideCollectionDecorator extends datasource_toolkit_1.CollectionDecorat
|
|
|
6
6
|
async create(caller, data) {
|
|
7
7
|
if (this.createHandler) {
|
|
8
8
|
const context = new context_1.CreateOverrideCustomizationContext(this.childCollection, caller, data);
|
|
9
|
-
|
|
9
|
+
const records = await this.createHandler(context);
|
|
10
|
+
this.cleanRecordsInPlace(records);
|
|
11
|
+
return records;
|
|
10
12
|
}
|
|
11
13
|
return super.create(caller, data);
|
|
12
14
|
}
|
|
@@ -33,6 +35,27 @@ class OverrideCollectionDecorator extends datasource_toolkit_1.CollectionDecorat
|
|
|
33
35
|
addDeleteHandler(handler) {
|
|
34
36
|
this.deleteHandler = handler;
|
|
35
37
|
}
|
|
38
|
+
/* Avoid copying the records to keep the same reference and avoid performance issues */
|
|
39
|
+
cleanRecordsInPlace(records) {
|
|
40
|
+
if (!Array.isArray(records)) {
|
|
41
|
+
throw new datasource_toolkit_1.ValidationError(`The records must be an array of objects`);
|
|
42
|
+
}
|
|
43
|
+
records.forEach(result => {
|
|
44
|
+
let hasPrimaryKey = false;
|
|
45
|
+
Object.keys(result).forEach(key => {
|
|
46
|
+
const field = this.schema.fields[key];
|
|
47
|
+
if (!field || field.type !== 'Column') {
|
|
48
|
+
delete result[key];
|
|
49
|
+
}
|
|
50
|
+
else if (datasource_toolkit_1.SchemaUtils.isPrimaryKey(this.schema, key)) {
|
|
51
|
+
hasPrimaryKey = true;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
if (!hasPrimaryKey) {
|
|
55
|
+
throw new datasource_toolkit_1.ValidationError(`The record does not contain any primary key field`);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
36
59
|
}
|
|
37
60
|
exports.default = OverrideCollectionDecorator;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL292ZXJyaWRlL2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3RUFPeUM7QUFFekMsdUNBSW1CO0FBR25CLE1BQXFCLDJCQUE0QixTQUFRLHdDQUFtQjtJQUtqRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUN0RCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSw0Q0FBa0MsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUUzRixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWxDLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBOEI7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxLQUFpQjtRQUNyRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSw0Q0FBa0MsQ0FDcEQsSUFBSSxDQUFDLGVBQWUsRUFDcEIsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLENBQ04sQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQztRQUVELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUE4QjtRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUNsRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSw0Q0FBa0MsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUU3RixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUE4QjtRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsdUZBQXVGO0lBQy9FLG1CQUFtQixDQUFDLE9BQXNCO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3ZCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRXRDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQ3JDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLGdDQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ3JELGFBQWEsR0FBRyxJQUFJLENBQUM7aUJBQ3RCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNsQixNQUFNLElBQUksb0NBQWUsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO2FBQ2hGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5RUQsOENBOEVDIn0=
|