From fc886715c7b465d7f5e18eb5bcd904963f6dd4a9 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Mon, 19 May 2025 14:13:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(data-source):=20=E5=BC=82=E6=AD=A5=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=95=B0=E6=8D=AE=E6=BA=90=E6=97=B6=EF=BC=8C=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E7=AC=AC=E4=B8=80=E6=AC=A1=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E6=97=B6=E6=95=B0=E6=8D=AE=E6=BA=90=E5=8F=AF=E8=83=BD=E6=9C=AA?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=EF=BC=8C=E9=9C=80=E8=A6=81=E4=BC=98=E5=85=88?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=95=B0=E6=8D=AE=E6=BA=90=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/data-source/src/DataSourceManager.ts | 15 ++++++++++++--- packages/data-source/src/types.ts | 4 ++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/data-source/src/DataSourceManager.ts b/packages/data-source/src/DataSourceManager.ts index db05b2cb..03e4dcfc 100644 --- a/packages/data-source/src/DataSourceManager.ts +++ b/packages/data-source/src/DataSourceManager.ts @@ -22,12 +22,18 @@ import EventEmitter from 'events'; import { cloneDeep } from 'lodash-es'; import type { DataSourceSchema, default as TMagicApp, DisplayCond, Id, MNode } from '@tmagic/core'; -import { compiledNode, NODE_CONDS_KEY } from '@tmagic/core'; +import { compiledNode, getDefaultValueFromFields, NODE_CONDS_KEY } from '@tmagic/core'; import { SimpleObservedData } from './observed-data/SimpleObservedData'; import { DataSource, HttpDataSource } from './data-sources'; import { getDeps } from './depsCache'; -import type { ChangeEvent, DataSourceManagerData, DataSourceManagerOptions, ObservedDataClass } from './types'; +import type { + ChangeEvent, + DataSourceManagerData, + DataSourceManagerOptions, + ObservedDataClass, + SchemaListMap, +} from './types'; import { compiledNodeField, compliedConditions, compliedIteratorItem, createIteratorContentData } from './utils'; class DataSourceManager extends EventEmitter { @@ -36,7 +42,7 @@ class DataSourceManager extends EventEmitter { ['http', HttpDataSource], ]); private static ObservedDataClass: ObservedDataClass = SimpleObservedData; - private static waitInitSchemaList = new Map>(); + private static waitInitSchemaList = new Map(); public static register(type: string, dataSource: T) { DataSourceManager.dataSourceClassMap.set(type, dataSource); @@ -171,6 +177,9 @@ class DataSourceManager extends EventEmitter { listMap[config.type] = [config]; } + // 保证初始化时的第一次编译有值 + this.data[config.id] = getDefaultValueFromFields(config.fields); + return; } diff --git a/packages/data-source/src/types.ts b/packages/data-source/src/types.ts index 6916ac6e..e2fcea54 100644 --- a/packages/data-source/src/types.ts +++ b/packages/data-source/src/types.ts @@ -65,3 +65,7 @@ export interface ChangeEvent { export type AsyncDataSourceResolveResult = { default: T; }; + +export interface SchemaListMap { + [key: string]: DataSourceSchema[]; +}