// 聊天室游戏延迟初始化工具，避免非关键游戏逻辑抢占首屏渲染资源。

/**
 * 延迟执行非关键游戏初始化。
 *
 * @param {Function} callback
 * @param {number} [timeout]
 * @returns {void}
 */
export function deferChatGameBootstrap(callback, timeout = 2500) {
    if (typeof callback !== "function") {
        return;
    }

    if ("requestIdleCallback" in window) {
        window.requestIdleCallback(callback, { timeout });
        return;
    }

    window.setTimeout(callback, Math.min(timeout, 1200));
}

/**
 * 暴露游戏延迟初始化入口给存量游戏面板脚本。
 *
 * @returns {void}
 */
export function bindGameBootstrapControls() {
    if (typeof window === "undefined") {
        return;
    }

    window.deferChatGameBootstrap = deferChatGameBootstrap;
}
