Add JSON field type and Event object (#4566)

* Add JSON field type and Event object

* Simplify code

* Adress PR comments and add featureFlag
This commit is contained in:
Félix Malfait
2024-03-19 21:54:08 +01:00
committed by GitHub
parent 4ab426c52a
commit 4bfb90657f
51 changed files with 575 additions and 117 deletions

View File

@ -1,12 +1,7 @@
import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata';
import { ObjectRecordBaseEvent } from 'src/engine/integrations/event-emitter/types/object-record.base.event';
export type CreatedObjectMetadata = {
nameSingular: string;
isCustom: boolean;
};
export class ObjectRecordCreateEvent<T extends BaseObjectMetadata> {
workspaceId: string;
createdRecord: T;
createdObjectMetadata: CreatedObjectMetadata;
export class ObjectRecordCreateEvent<T> extends ObjectRecordBaseEvent {
details: {
after: T;
};
}

View File

@ -1,6 +1,7 @@
import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata';
import { ObjectRecordBaseEvent } from 'src/engine/integrations/event-emitter/types/object-record.base.event';
export declare class ObjectRecordDeleteEvent<T extends BaseObjectMetadata> {
workspaceId: string;
deletedRecord: T;
export class ObjectRecordDeleteEvent<T> extends ObjectRecordBaseEvent {
details: {
before: T;
};
}

View File

@ -1,7 +1,8 @@
import { BaseObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/standard-objects/base.object-metadata';
import { ObjectRecordBaseEvent } from 'src/engine/integrations/event-emitter/types/object-record.base.event';
export class ObjectRecordUpdateEvent<T extends BaseObjectMetadata> {
workspaceId: string;
previousRecord: T;
updatedRecord: T;
export class ObjectRecordUpdateEvent<T> extends ObjectRecordBaseEvent {
details: {
before: T;
after: T;
};
}

View File

@ -0,0 +1,8 @@
import { ObjectMetadataInterface } from 'src/engine-metadata/field-metadata/interfaces/object-metadata.interface';
export class ObjectRecordBaseEvent {
workspaceId: string;
recordId: string;
objectMetadata: ObjectMetadataInterface;
details: any;
}