From 3f7d03959cdbafacc439df2bf3a61aa1e21cb8c2 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 2 Jul 2025 16:42:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(dep,schema):=20=E6=B7=BB=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=B2=A1=E7=94=A8=E6=95=B0=E6=8D=AE=E6=BA=90=E6=88=96?= =?UTF-8?q?=E8=80=85=E4=BB=A3=E7=A0=81=E5=9D=97=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/dep/src/Watcher.ts | 14 ++++++++++++++ packages/schema/src/index.ts | 2 ++ 2 files changed, 16 insertions(+) diff --git a/packages/dep/src/Watcher.ts b/packages/dep/src/Watcher.ts index da28b31a..268cbe88 100644 --- a/packages/dep/src/Watcher.ts +++ b/packages/dep/src/Watcher.ts @@ -1,3 +1,4 @@ +import { NODE_NO_CODE_BLOCK_KEY, NODE_NO_DATA_SOURCE_KEY } from '@tmagic/schema'; import { isObject } from '@tmagic/utils'; import type Target from './Target'; @@ -189,6 +190,19 @@ export default class Watcher { } public collectItem(node: TargetNode, target: Target, depExtendedData: DepExtendedData = {}, deep = false) { + const dataSourceTargetTypes: string[] = [ + DepTargetType.DATA_SOURCE, + DepTargetType.DATA_SOURCE_COND, + DepTargetType.DATA_SOURCE_METHOD, + ]; + if (node[NODE_NO_DATA_SOURCE_KEY] && dataSourceTargetTypes.includes(target.type)) { + return; + } + + if (node[NODE_NO_CODE_BLOCK_KEY] && target.type === DepTargetType.CODE_BLOCK) { + return; + } + const collectTarget = (config: Record, prop = '') => { const doCollect = (key: string, value: any) => { const keyIsItems = key === this.childrenProp; diff --git a/packages/schema/src/index.ts b/packages/schema/src/index.ts index 5196d1b3..dd22a6b0 100644 --- a/packages/schema/src/index.ts +++ b/packages/schema/src/index.ts @@ -47,6 +47,8 @@ export enum NodeType { } export const NODE_CONDS_KEY = 'displayConds'; +export const NODE_NO_DATA_SOURCE_KEY = '__tmagic_node_no_data_source'; +export const NODE_NO_CODE_BLOCK_KEY = '__tmagic_node_no_code_block'; export type Id = string | number;