/**
 * 按组件类型分发到不同解析器，解析后将 configName 用于 getConfigByName，data 传入组件。
 */
import { parseXListBlock } from './xListBlockParser'

const PARSERS = {
  'x-list': parseXListBlock
}

/**
 * 根据类型调用对应解析器，传入数据并返回组件描述
 * @param {string} componentType - 组件类型，如 'x-list'
 * @param {any} parsed - 已解析的 JSON
 * @param {object} [options] - 可选，如 { defaultConfigName }
 * @returns {{ componentType: string, configName: string, data: any } | null}
 */
export function parseBlockByType (componentType, parsed, options = {}) {
  const parser = PARSERS[componentType]
  if (!parser) return null
  return parser(parsed, options.defaultConfigName)
}

export { parseXListBlock }
