/**
 * 调试日志工具
 *
 * 通过环境变量控制调试日志输出
 * 开发环境：输出详细日志
 * 生产环境：仅输出错误
 */

// 检测是否为开发环境
const isDevelopment = import.meta.env.DEV || import.meta.env.MODE === 'development'

/**
 * 调试日志输出（仅开发环境）
 * @param {...any} args - 要输出的参数
 */
export const debugLog = (...args) => {
  if (isDevelopment) {
    console.log('[FileSystem]', ...args)
  }
}

/**
 * 警告日志（所有环境）
 * @param {...any} args - 要输出的参数
 */
export const debugWarn = (...args) => {
  console.warn('[FileSystem]', ...args)
}

/**
 * 错误日志（所有环境）
 * @param {...any} args - 要输出的参数
 */
export const debugError = (...args) => {
  console.error('[FileSystem]', ...args)
}

/**
 * 分组日志开始（仅开发环境）
 * @param {string} label - 分组标签
 */
export const debugGroup = (label) => {
  if (isDevelopment) {
    console.group(`[FileSystem] ${label}`)
  }
}

/**
 * 分组日志结束（仅开发环境）
 */
export const debugGroupEnd = () => {
  if (isDevelopment) {
    console.groupEnd()
  }
}

/**
 * 条件日志（仅在满足条件时输出）
 * @param {boolean} condition - 是否输出
 * @param {...any} args - 要输出的参数
 */
export const debugIf = (condition, ...args) => {
  if (isDevelopment && condition) {
    console.log('[FileSystem]', ...args)
  }
}

/**
 * 性能日志（仅开发环境）
 * @param {string} label - 性能标签
 * @param {Function} fn - 要测量的函数
 */
export const debugTime = (label, fn) => {
  if (isDevelopment) {
    console.time(`[FileSystem] ${label}`)
    const result = fn()
    console.timeEnd(`[FileSystem] ${label}`)
    return result
  }
  return fn()
}
