import { createKoaAdapter } from "./adapter.js";
// ── 工厂函数 ────────────────────────────────────────────────
/**
 * koaAdapter — 创建 Koa 适配器工厂函数
 *
 * 返回一个「延迟工厂」函数，该函数在 adapter-resolver 调用时
 * 接收 VextApp 实例并创建完整的 VextAdapter。
 *
 * 这种两阶段初始化设计与 adapter-resolver 的工作方式对齐：
 *   1. 用户调用 koaAdapter(options) → 返回工厂函数（捕获 options）
 *   2. adapter-resolver 调用 factory(app) → 返回 VextAdapter 实例
 *
 * @param options Koa 适配器选项（可选）
 * @returns 适配器工厂函数 (app: VextApp) => VextAdapter
 *
 * @example
 * // 内置方式（config.adapter = 'koa'，零 import）
 * export default { adapter: 'koa' }
 *
 * @example
 * // 工厂方式（自定义选项）
 * import { koaAdapter } from 'vextjs/adapters/koa'
 * export default { adapter: koaAdapter({ bodyLimit: '5mb' }) }
 */
export function koaAdapter(options) {
    const opts = options ?? {};
    return (app) => {
        return createKoaAdapter(opts, app);
    };
}
/**
 * createKoaAdapterDirect — 直接创建 Koa Adapter（内部使用）
 *
 * 供 adapter-resolver 的 BUILT_IN_ADAPTERS 映射表使用。
 * 不暴露给用户（用户应使用 koaAdapter() 工厂函数）。
 *
 * @internal
 */
export { createKoaAdapter } from "./adapter.js";
