From e98fa396461ebc103049cfa7dc1457241e7ef341 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 24 Oct 2025 15:33:29 +0400 Subject: [PATCH] Start DataSource callbacks --- packages/core/src/data_sources/types.ts | 11 ++++++++++- packages/core/src/editor/types.ts | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/core/src/data_sources/types.ts b/packages/core/src/data_sources/types.ts index 5218e1cbb..0f14a70b3 100644 --- a/packages/core/src/data_sources/types.ts +++ b/packages/core/src/data_sources/types.ts @@ -1,6 +1,7 @@ -import { Model, Collection, ObjectAny } from '../common'; +import { Model, Collection, ObjectAny, AddOptions, RemoveOptions } from '../common'; import DataRecord from './model/DataRecord'; import DataRecords from './model/DataRecords'; +import DataSource from './model/DataSource'; import DataVariable, { DataVariableProps } from './model/DataVariable'; import { DataConditionProps, DataCondition } from './model/conditional_variables/DataCondition'; @@ -175,6 +176,8 @@ export type DeepPartialDot = { : never; }; +export type DataSourceEvent = `${DataSourcesEvents}`; + /**{START_EVENTS}*/ export enum DataSourcesEvents { /** @@ -243,5 +246,11 @@ export enum DataSourcesEvents { } /**{END_EVENTS}*/ +export interface DataSourcesEventCallback { + [DataSourcesEvents.add]: [DataSource, AddOptions]; + [DataSourcesEvents.remove]: [DataSource, RemoveOptions]; + [DataSourcesEvents.update]: [DataSource, AddOptions]; +} + // need this to avoid the TS documentation generator to break export default DataSourcesEvents; diff --git a/packages/core/src/editor/types.ts b/packages/core/src/editor/types.ts index 8bb7dfe2a..be265e786 100644 --- a/packages/core/src/editor/types.ts +++ b/packages/core/src/editor/types.ts @@ -4,6 +4,7 @@ import { BlocksEventCallback } from '../block_manager/types'; import { CanvasEvent } from '../canvas'; import { CommandEvent } from '../commands'; import { LiteralUnion } from '../common'; +import { DataSourceEvent, DataSourcesEventCallback } from '../data_sources/types'; import { ComponentEvent } from '../dom_components'; import { KeymapEvent } from '../keymaps'; import { ModalEvent } from '../modal_dialog'; @@ -16,6 +17,7 @@ import EditorModel from './model/Editor'; type GeneralEvent = 'canvasScroll' | 'undo' | 'redo' | 'load' | 'update'; type EditorBuiltInEvents = + | DataSourceEvent | ComponentEvent | BlockEvent | AssetEvent @@ -35,7 +37,7 @@ export type EditorConfigType = EditorConfig & { pStylePrefix?: string }; export type EditorModelParam = Parameters[N]; -export interface EditorEventCallbacks extends BlocksEventCallback { +export interface EditorEventCallbacks extends BlocksEventCallback, DataSourcesEventCallback { [key: string]: any[]; }