Skip to content

模块:Shared(领域层)

唯一职责:定义跨层共享的 TypeScript 类型和纯函数,作为 Nuxt 约定目录 shared/ 自动导入。

边界

属于本模块:

  • 节点相关类型(NodeTypeNodeStatusContentOriginNodeData 判别联合、CanvasNode
  • 画布类型(CanvasViewport
  • 边类型(CanvasEdge
  • 模型类型(ModelModalityAiModelInfoAiModelModelAbilityAbilityTypeAbilityRules
  • 连线校验纯函数(validateEdgewouldCreateCycle
  • 上游数据收集纯函数(collectUpstreamOutputsbuildPrompt
  • 模型能力解析纯函数(getAbilityOptionsresolveAbilityValuesgetReferenceImageLimitresolveConstrainedValues

不属于本模块:

  • 运行时副作用代码(Nuxt 约定:shared/ 禁止导入 Vue/Nitro)
  • 组件 Props / Emits 类型(定义在各组件内部)
  • API 请求/响应类型(定义在 services/ 内部)
  • UI 专属常量(定义在 constants/

不变量

  1. shared/types/ 中所有导出为 interfacetype,不含运行时逻辑
  2. shared/utils/ 中所有导出为纯函数,不导入 Vue/Nitro/Pinia
  3. 作为 Nuxt 约定目录,所有导出自动导入,无需手动 import
  4. 位于架构分层 L0(领域层),被 L1、L2、L3 单向依赖

错误场景

领域层为纯类型定义和纯函数,不产生运行时错误。纯函数的异常输入通过返回值表达(如 validateEdge 返回 { valid: false, reason }),不抛出异常。

实现位置

角色文件路径
节点类型shared/types/node.ts
画布类型shared/types/graph.ts
边类型shared/types/edge.ts
模型类型shared/types/model.ts
连线校验shared/utils/edge-validation.ts
上游数据收集shared/utils/upstream.ts
模型能力解析shared/utils/ability.ts