feat(core): 新增数据源初始数据配置字段

This commit is contained in:
roymondchen 2025-05-14 11:07:55 +08:00
parent e0d5efb022
commit d1e99a46a7

View File

@ -20,7 +20,13 @@ import { EventEmitter } from 'events';
import { isEmpty } from 'lodash-es'; import { isEmpty } from 'lodash-es';
import { createDataSourceManager, type DataSource, DataSourceManager, ObservedDataClass } from '@tmagic/data-source'; import {
createDataSourceManager,
type DataSource,
DataSourceManager,
type DataSourceManagerData,
ObservedDataClass,
} from '@tmagic/data-source';
import type { CodeBlockDSL, DataSourceSchema, Id, JsEngine, MApp, RequestFunction } from '@tmagic/schema'; import type { CodeBlockDSL, DataSourceSchema, Id, JsEngine, MApp, RequestFunction } from '@tmagic/schema';
import Env from './Env'; import Env from './Env';
@ -52,6 +58,7 @@ export interface AppOptionsConfig {
transformStyle?: (style: Record<string, any>) => Record<string, any>; transformStyle?: (style: Record<string, any>) => Record<string, any>;
request?: RequestFunction; request?: RequestFunction;
DataSourceObservedData?: ObservedDataClass; DataSourceObservedData?: ObservedDataClass;
dataSourceManagerInitialData?: DataSourceManagerData;
errorHandler?: ErrorHandler; errorHandler?: ErrorHandler;
} }
@ -135,7 +142,7 @@ class App extends EventEmitter {
} }
if (options.config) { if (options.config) {
this.setConfig(options.config, options.curPage); this.setConfig(options.config, options.curPage, options.dataSourceManagerInitialData);
} }
} }
@ -155,8 +162,9 @@ class App extends EventEmitter {
* dsl * dsl
* @param config dsl跟节点 * @param config dsl跟节点
* @param curPage id * @param curPage id
* @param initialData
*/ */
public setConfig(config: MApp, curPage?: Id) { public setConfig(config: MApp, curPage?: Id, initialData?: DataSourceManagerData) {
this.dsl = config; this.dsl = config;
if (!curPage && config.items.length) { if (!curPage && config.items.length) {
@ -167,7 +175,7 @@ class App extends EventEmitter {
this.dataSourceManager.destroy(); this.dataSourceManager.destroy();
} }
this.dataSourceManager = createDataSourceManager(this, this.useMock); this.dataSourceManager = createDataSourceManager(this, this.useMock, initialData);
this.codeDsl = config.codeBlocks; this.codeDsl = config.codeBlocks;