From 163f6309596e8e8e94789f632999f1da3a998bba Mon Sep 17 00:00:00 2001 From: roymondchen Date: Mon, 2 Oct 2023 16:28:53 +0800 Subject: [PATCH] =?UTF-8?q?refactor(data-source,utils):=20=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=BB=98=E8=AE=A4=E5=80=BC=E5=87=BD=E6=95=B0=E6=94=BE?= =?UTF-8?q?=E5=88=B0utils=E5=BA=93=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/data-source/src/data-sources/Base.ts | 2 +- packages/data-source/src/index.ts | 1 - packages/data-source/src/util.ts | 46 ------------------- packages/utils/src/index.ts | 29 +++++++++++- 4 files changed, 29 insertions(+), 49 deletions(-) delete mode 100644 packages/data-source/src/util.ts 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; +};