/**
 * Electron API 桥接层
 * 用于检测运行环境并提供安全的 API 访问
 */

/**
 * 检测是否在 Electron 环境中运行
 */
export const isElectron = () => {
    return typeof window !== 'undefined' && !!window.electronAPI
}

/**
 * 获取 Electron API（非 Electron 环境返回 null）
 */
export const getElectronAPI = () => {
    return isElectron() ? window.electronAPI : null
}

/**
 * 安全调用 Electron API 方法
 * 如果不在 Electron 环境中，返回 undefined 或默认值
 */
export async function safeElectronCall(apiCall, defaultValue) {
    const api = getElectronAPI()
    if (!api) {
        console.warn('[ElectronBridge] Not running in Electron environment')
        return defaultValue
    }
    try {
        return await apiCall(api)
    } catch (error) {
        console.error('[ElectronBridge] API call failed:', error)
        return defaultValue
    }
}

/**
 * 获取应用版本（非 Electron 环境返回 'web'）
 */
export async function getAppVersion() {
    const api = getElectronAPI()
    if (!api) return 'web'
    try {
        return await api.getAppVersion()
    } catch {
        return 'unknown'
    }
}
