/**
 * 通用 Schema 加载函数
 * @param {string} nodeType - 节点类型
 * @returns {Promise<Object>} Schema 配置对象
 */

import { api } from '@/shared/api/common'

export async function loadNodeSchema(nodeType) {
  try {
    // 使用 Jingrow RPC 调用后端 whitelist 函数
    const res = await api.call('jingrow.ai.utils.jlocal.get_node_schema', {
      node_type: nodeType
    })
    
    // Jingrow whitelist 函数返回值被包装在 message 字段中
    const result = res?.message || res
    
    if (result?.success && result?.data) {
      return result.data
    } else {
      console.warn(`获取节点Schema失败: ${nodeType}`, result)
      return {}
    }
  } catch (error) {
    console.error(`Schema加载失败: ${nodeType}`, error)
    return {}
  }
}

/**
 * 创建针对特定节点类型的 Schema 加载器
 * @param {string} nodeType - 节点类型
 * @returns {Function} 异步加载函数
 */
export function createSchemaLoader(nodeType) {
  return () => loadNodeSchema(nodeType)
} 