import { BaseRestClient } from "./base"; import { BinanceRestClient } from "./binance/rest"; /** 交易所 ID 到 RestClient 构造器的注册表 */ const registry: Record BaseRestClient> = { binance: () => new BinanceRestClient(), }; /** * 创建交易所 REST 客户端。 * * 根据交易所 ID 返回对应的 RestClient 实例, * 外部无需感知具体子类。 * * @param exchangeId - 交易所标识(如 "binance") * @returns 对应交易所的 RestClient 实例 * @throws 如果 exchangeId 未注册 */ export function createRestClient(exchangeId: string): BaseRestClient { const factory = registry[exchangeId]; if (!factory) { const supported = Object.keys(registry).join(", "); throw new Error( `[exchanges] 不支持的交易所: "${exchangeId}",当前支持: ${supported}`, ); } return factory(); } export { BaseRestClient } from "./base"; export { BinanceRestClient } from "./binance/rest"; export { KLINE_INTERVAL_MS } from "./constants";