diff --git a/packages/data-source/src/data-sources/Base.ts b/packages/data-source/src/data-sources/Base.ts index ec6c41d1..9aa526d4 100644 --- a/packages/data-source/src/data-sources/Base.ts +++ b/packages/data-source/src/data-sources/Base.ts @@ -18,9 +18,9 @@ import EventEmitter from 'events'; import type { AppCore, CodeBlockContent, DataSchema } from '@tmagic/schema'; +import { getDefaultValueFromFields } from '@tmagic/utils'; import type { DataSourceOptions } from '@data-source/types'; -import { getDefaultValueFromFields } from '@data-source/util'; /** * 静态数据源 diff --git a/packages/data-source/src/index.ts b/packages/data-source/src/index.ts index e418d1c6..60537a34 100644 --- a/packages/data-source/src/index.ts +++ b/packages/data-source/src/index.ts @@ -19,5 +19,4 @@ export { default as DataSourceManager } from './DataSourceManager'; export * from './data-sources'; export * from './createDataSourceManager'; -export * from './util'; export * from './types'; diff --git a/packages/data-source/src/util.ts b/packages/data-source/src/util.ts deleted file mode 100644 index 633794f7..00000000 --- a/packages/data-source/src/util.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making TMagicEditor available. - * - * Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import type { DataSchema } from '@tmagic/schema'; - -export const getDefaultValueFromFields = (fields: DataSchema[]) => { - const data: Record = {}; - - const defaultValue: Record = { - string: '', - object: {}, - array: [], - boolean: false, - number: 0, - null: null, - any: undefined, - }; - - fields.forEach((field) => { - if (typeof field.defaultValue !== 'undefined') { - data[field.name] = field.defaultValue; - } else if (field.type === 'object') { - data[field.name] = field.fields ? getDefaultValueFromFields(field.fields) : {}; - } else if (field.type) { - data[field.name] = defaultValue[field.type]; - } else { - data[field.name] = undefined; - } - }); - return data; -}; diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 8f3e9b67..08b3210a 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -19,7 +19,7 @@ import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; -import type { DataSourceDeps, Id, MComponent, MNode } from '@tmagic/schema'; +import type { DataSchema, DataSourceDeps, Id, MComponent, MNode } from '@tmagic/schema'; import { NodeType } from '@tmagic/schema'; export * from './dom'; @@ -340,3 +340,30 @@ export const compiledCond = (op: string, fieldValue: any, value: any, range: [nu return true; }; + +export const getDefaultValueFromFields = (fields: DataSchema[]) => { + const data: Record = {}; + + const defaultValue: Record = { + string: '', + object: {}, + array: [], + boolean: false, + number: 0, + null: null, + any: undefined, + }; + + fields.forEach((field) => { + if (typeof field.defaultValue !== 'undefined') { + data[field.name] = field.defaultValue; + } else if (field.type === 'object') { + data[field.name] = field.fields ? getDefaultValueFromFields(field.fields) : {}; + } else if (field.type) { + data[field.name] = defaultValue[field.type]; + } else { + data[field.name] = undefined; + } + }); + return data; +};