/**
 * Shared utilities for Feishu message converters.
 */

/** Safely parse a JSON string, returning undefined on failure. */
export function safeParse(raw: string): unknown | undefined {
  try {
    return JSON.parse(raw)
  } catch {
    return undefined
  }
}

/** Format a duration in milliseconds to a human-readable string. */
export function formatDuration(ms: number): string {
  const seconds = ms / 1000
  if (seconds < 1) return `${ms}ms`
  if (Number.isInteger(seconds)) return `${seconds}s`
  return `${seconds.toFixed(1)}s`
}
