Function trigger updates 2 (#16608)

- Improves route trigger job performances
- expose function params types

## Before

<img width="938" height="271" alt="image"
src="https://github.com/user-attachments/assets/5752ba64-f31d-44ed-974d-536e63458f2c"
/>


## After

<img width="1000" height="559" alt="image"
src="https://github.com/user-attachments/assets/b1f4927a-5f43-49f0-a606-244c72356772"
/>
This commit is contained in:
martmull
2025-12-16 18:20:26 +01:00
committed by GitHub
parent 58c85e7cca
commit 1cbbd04761
75 changed files with 391 additions and 202 deletions
@@ -0,0 +1,30 @@
import { type ObjectRecordEvent } from '@/database-events/object-record-event.event';
type SimplifiedFlatObjectMetadata = {
id: string;
nameSingular: string;
namePlural: string;
labelSingular: string;
labelPlural: string;
description: string | null;
icon: string | null;
universalIdentifier: string;
applicationId: string | null;
} & {
fieldMetadataIds: string[];
indexMetadataIds: string[];
viewIds: string[];
};
type WorkspaceEventBatch<WorkspaceEvent> = {
name: string;
workspaceId: string;
objectMetadata: SimplifiedFlatObjectMetadata;
events: WorkspaceEvent[];
};
export type DatabaseEventPayload<T = ObjectRecordEvent> = Omit<
WorkspaceEventBatch<T>,
'events'
> &
T;
@@ -0,0 +1,20 @@
/*
* _____ _
*|_ _|_ _____ _ __ | |_ _ _
* | | \ \ /\ / / _ \ '_ \| __| | | | Auto-generated file
* | | \ V V / __/ | | | |_| |_| | Any edits to this will be overridden
* |_| \_/\_/ \___|_| |_|\__|\__, |
* |___/
*/
export type { DatabaseEventPayload } from './database-event-payload.type';
export { ObjectRecordCreateEvent } from './object-record-create.event';
export { ObjectRecordDeleteEvent } from './object-record-delete.event';
export { ObjectRecordDestroyEvent } from './object-record-destroy.event';
export type { ObjectRecordDiff } from './object-record-diff';
export type { ObjectRecordEvent } from './object-record-event.event';
export type { ObjectRecordNonDestructiveEvent } from './object-record-non-destructive-event';
export { ObjectRecordRestoreEvent } from './object-record-restore.event';
export { ObjectRecordUpdateEvent } from './object-record-update.event';
export { ObjectRecordUpsertEvent } from './object-record-upsert.event';
export { ObjectRecordBaseEvent } from './object-record.base.event';
@@ -0,0 +1,9 @@
import { ObjectRecordBaseEvent } from '@/database-events/object-record.base.event';
export class ObjectRecordCreateEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
declare properties: {
after: T;
};
}
@@ -0,0 +1,9 @@
import { ObjectRecordBaseEvent } from '@/database-events/object-record.base.event';
export class ObjectRecordDeleteEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
declare properties: {
before: T;
};
}
@@ -0,0 +1,9 @@
import { ObjectRecordBaseEvent } from '@/database-events/object-record.base.event';
export class ObjectRecordDestroyEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
declare properties: {
before: T;
};
}
@@ -0,0 +1,3 @@
export type ObjectRecordDiff<T> = {
[K in keyof T]: { before: T[K]; after: T[K] };
};
@@ -0,0 +1,14 @@
import { type ObjectRecordDeleteEvent } from '@/database-events/object-record-delete.event';
import { type ObjectRecordUpdateEvent } from '@/database-events/object-record-update.event';
import { type ObjectRecordCreateEvent } from '@/database-events/object-record-create.event';
import { type ObjectRecordDestroyEvent } from '@/database-events/object-record-destroy.event';
import { type ObjectRecordRestoreEvent } from '@/database-events/object-record-restore.event';
import { type ObjectRecordUpsertEvent } from '@/database-events/object-record-upsert.event';
export type ObjectRecordEvent<T = object> =
| ObjectRecordUpdateEvent<T>
| ObjectRecordDeleteEvent<T>
| ObjectRecordCreateEvent<T>
| ObjectRecordDestroyEvent<T>
| ObjectRecordRestoreEvent<T>
| ObjectRecordUpsertEvent<T>;
@@ -0,0 +1,12 @@
import { type ObjectRecordCreateEvent } from '@/database-events/object-record-create.event';
import { type ObjectRecordDeleteEvent } from '@/database-events/object-record-delete.event';
import { type ObjectRecordRestoreEvent } from '@/database-events/object-record-restore.event';
import { type ObjectRecordUpsertEvent } from '@/database-events/object-record-upsert.event';
import { type ObjectRecordUpdateEvent } from '@/database-events/object-record-update.event';
export type ObjectRecordNonDestructiveEvent =
| ObjectRecordCreateEvent
| ObjectRecordUpdateEvent
| ObjectRecordDeleteEvent
| ObjectRecordRestoreEvent
| ObjectRecordUpsertEvent;
@@ -0,0 +1,9 @@
import { ObjectRecordCreateEvent } from '@/database-events/object-record-create.event';
export class ObjectRecordRestoreEvent<
T = object,
> extends ObjectRecordCreateEvent<T> {
declare properties: {
after: T;
};
}
@@ -0,0 +1,13 @@
import { ObjectRecordBaseEvent } from '@/database-events/object-record.base.event';
import { type ObjectRecordDiff } from '@/database-events/object-record-diff';
export class ObjectRecordUpdateEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
declare properties: {
updatedFields?: string[];
diff?: Partial<ObjectRecordDiff<T>>;
before: T;
after: T;
};
}
@@ -0,0 +1,13 @@
import { ObjectRecordBaseEvent } from '@/database-events/object-record.base.event';
import { type ObjectRecordDiff } from '@/database-events/object-record-diff';
export class ObjectRecordUpsertEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
declare properties: {
before?: T;
after: T;
diff?: Partial<ObjectRecordDiff<T>>;
updatedFields?: string[];
};
}
@@ -0,0 +1,15 @@
import { type ObjectRecordDiff } from '@/database-events/object-record-diff';
type Properties<T> = {
updatedFields?: string[];
before?: T;
after?: T;
diff?: Partial<ObjectRecordDiff<T>>;
};
export class ObjectRecordBaseEvent<T = object> {
recordId: string;
userId?: string;
workspaceMemberId?: string;
properties: Properties<T>;
}