mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
Don't save directus_revisions row for empty delta (#12839)
Fixes #12838
This commit is contained in:
@@ -462,7 +462,7 @@ export class ItemsService<Item extends AnyItem = AnyItem> implements AbstractSer
|
||||
schema: this.schema,
|
||||
});
|
||||
|
||||
const revisionIDs = await revisionsService.createMany(
|
||||
const revisions = (
|
||||
await Promise.all(
|
||||
activity.map(async (activity, index) => ({
|
||||
activity: activity,
|
||||
@@ -473,7 +473,9 @@ export class ItemsService<Item extends AnyItem = AnyItem> implements AbstractSer
|
||||
delta: await payloadService.prepareDelta(payloadWithTypeCasting),
|
||||
}))
|
||||
)
|
||||
);
|
||||
).filter((revision) => revision.delta);
|
||||
|
||||
const revisionIDs = await revisionsService.createMany(revisions);
|
||||
|
||||
for (let i = 0; i < revisionIDs.length; i++) {
|
||||
const revisionID = revisionIDs[i];
|
||||
|
||||
@@ -713,7 +713,7 @@ export class PayloadService {
|
||||
* Transforms the input partial payload to match the output structure, to have consistency
|
||||
* between delta and data
|
||||
*/
|
||||
async prepareDelta(data: Partial<Item>): Promise<string> {
|
||||
async prepareDelta(data: Partial<Item>): Promise<string | null> {
|
||||
let payload = cloneDeep(data);
|
||||
|
||||
for (const key in payload) {
|
||||
@@ -724,6 +724,8 @@ export class PayloadService {
|
||||
|
||||
payload = await this.processValues('read', payload);
|
||||
|
||||
if (Object.keys(payload).length === 0) return null;
|
||||
|
||||
return JSON.stringify(payload);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user