{"version":3,"file":"format-DYh8khIQ.mjs","names":[],"sources":["../src/format.ts"],"sourcesContent":["import type { Diagnostic } from './diagnostics'\n\nexport type Formatter = (diagnostic: Diagnostic) => string\n\nexport function formatTag(d: Diagnostic): string {\n  return `[${d.code}]`\n}\n\nexport function renderFrame(d: Diagnostic): string {\n  const header = `${formatTag(d)} ${d.message}`\n\n  const details: string[] = []\n  if (d.why)\n    details.push(`why: ${d.why}`)\n  if (d.fix)\n    details.push(`fix: ${d.fix}`)\n  if (d.hint)\n    details.push(`hint: ${d.hint}`)\n  if (d.docs)\n    details.push(`see: ${d.docs}`)\n\n  if (details.length === 0)\n    return header\n\n  const lines = details.map((detail, i) => {\n    const connector = i < details.length - 1 ? '├▶' : '╰▶'\n    return `${connector} ${detail}`\n  })\n\n  return [header, ...lines].join('\\n')\n}\n\nexport const plainFormatter: Formatter = renderFrame\n"],"mappings":";AAIA,SAAgB,UAAU,GAAuB;AAC/C,QAAO,IAAI,EAAE,KAAK;;AAGpB,SAAgB,YAAY,GAAuB;CACjD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,GAAG,EAAE;CAEpC,MAAM,UAAoB,EAAE;AAC5B,KAAI,EAAE,IACJ,SAAQ,KAAK,QAAQ,EAAE,MAAM;AAC/B,KAAI,EAAE,IACJ,SAAQ,KAAK,QAAQ,EAAE,MAAM;AAC/B,KAAI,EAAE,KACJ,SAAQ,KAAK,SAAS,EAAE,OAAO;AACjC,KAAI,EAAE,KACJ,SAAQ,KAAK,QAAQ,EAAE,OAAO;AAEhC,KAAI,QAAQ,WAAW,EACrB,QAAO;AAOT,QAAO,CAAC,QAAQ,GALF,QAAQ,KAAK,QAAQ,MAAM;AAEvC,SAAO,GADW,IAAI,QAAQ,SAAS,IAAI,OAAO,KAC9B,GAAG;GACvB,CAEuB,CAAC,KAAK,KAAK;;AAGtC,MAAa,iBAA4B"}