/**
 * MSW 启用入口 - 按 NEXT_PUBLIC_API_MOCKING 环境变量条件启用
 *
 * 启用方式：在 .env 中设置 NEXT_PUBLIC_API_MOCKING=enabled
 * 关闭方式：删除该变量或设为 disabled
 *
 * 在客户端入口（providers.tsx）调用 initMocks() 触发注册。
 *
 * 维护者：ai13（teacher-portal）
 */

const MOCKING_ENABLED = process.env.NEXT_PUBLIC_API_MOCKING === "enabled";

async function initMocks(): Promise<void> {
  if (!MOCKING_ENABLED) {
    return;
  }

  if (typeof window === "undefined") {
    // 服务端：启用 node server
    const { server } = await import("./server");
    server.listen({
      onUnhandledRequest: "bypass",
    });
  } else {
    // 客户端：注册 Service Worker
    const { worker } = await import("./browser");
    await worker.start({
      onUnhandledRequest: "bypass",
      serviceWorker: {
        url: "/mockServiceWorker.js",
      },
    });
  }
}

export { initMocks, MOCKING_ENABLED };
