useDataTool.ts 921 Bytes
import { Ref, toRaw, unref } from 'vue';
import { NodeData } from '../types/node';

export function useDataTool() {
  /**
   * @description 通过NodeData获取默认配置信息
   * @param nodeData
   * @returns
   */
  function getDefaultConfigurationByNodeData<T = any>(nodeData: Ref<NodeData> | NodeData) {
    nodeData = toRaw(unref(nodeData));

    const { nodeDefinition } = nodeData.config?.configurationDescriptor || {};
    const { defaultConfiguration } = nodeDefinition || {};

    return { defaultConfiguration: defaultConfiguration as T };
  }

  /**
   * @description 通过NodeData获取节点绑定信息
   * @param nodeData
   * @returns
   */
  function getBindDataByNodeData<T = any>(nodeData: Ref<NodeData> | NodeData) {
    nodeData = toRaw(unref(nodeData));

    const data = nodeData.data as T;

    return { data };
  }

  return { getDefaultConfigurationByNodeData, getBindDataByNodeData };
}