ts-markdown-builder
Version:
Elegant markdown builder with minimal bundle size.
1 lines • 2.35 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","names":["joinBlocks","blocks","map","trimBlock","filter","Boolean","join","block","replace","prefixLines","text","prefix","lines","split","line","escape","maxBackticks","max","current","i","length","Math"],"sources":["../../src/utils.ts"],"sourcesContent":["/**\n * Join blocks of text into a single markdown document (string).\n *\n * @param blocks - The blocks of text to join.\n * @returns Markdown document string.\n */\nexport function joinBlocks(blocks: string | readonly string[]): string {\n blocks = typeof blocks === 'string' ? [blocks] : blocks;\n\n return blocks.map(trimBlock).filter(Boolean).join('\\n\\n');\n}\n\nfunction trimBlock(block: string): string {\n return block.replace(/^\\n+|\\n+$/g, '');\n}\n\nexport function prefixLines(text: string, prefix: string): string {\n const lines = text.split('\\n');\n return lines.map((line) => `${prefix}${line}`).join('\\n');\n}\n\nexport function escape(text: string): string {\n return text.replace(/([\\\\`*_{}[\\]()#+\\-.!|<>])/g, '\\\\$1');\n}\n\nexport function maxBackticks(text: string): number {\n let max = 0;\n let current = 0;\n\n for (let i = 0; i < text.length; i++) {\n if (text[i] === '`') {\n current++;\n max = Math.max(max, current);\n } else {\n current = 0;\n }\n }\n\n return max;\n}\n"],"mappings":"AAMA,OAAO,SAASA,UAAUA,CAACC,MAAkC,EAAU;EACrEA,MAAM,GAAG,OAAOA,MAAM,KAAK,QAAQ,GAAG,CAACA,MAAM,CAAC,GAAGA,MAAM;EAEvD,OAAOA,MAAM,CAACC,GAAG,CAACC,SAAS,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,MAAM,CAAC;AAC3D;AAEA,SAASH,SAASA,CAACI,KAAa,EAAU;EACxC,OAAOA,KAAK,CAACC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;AACxC;AAEA,OAAO,SAASC,WAAWA,CAACC,IAAY,EAAEC,MAAc,EAAU;EAChE,MAAMC,KAAK,GAAGF,IAAI,CAACG,KAAK,CAAC,IAAI,CAAC;EAC9B,OAAOD,KAAK,CAACV,GAAG,CAAEY,IAAI,IAAK,GAAGH,MAAM,GAAGG,IAAI,EAAE,CAAC,CAACR,IAAI,CAAC,IAAI,CAAC;AAC3D;AAEA,OAAO,SAASS,MAAMA,CAACL,IAAY,EAAU;EAC3C,OAAOA,IAAI,CAACF,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC;AAC3D;AAEA,OAAO,SAASQ,YAAYA,CAACN,IAAY,EAAU;EACjD,IAAIO,GAAG,GAAG,CAAC;EACX,IAAIC,OAAO,GAAG,CAAC;EAEf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,IAAI,CAACU,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,IAAIT,IAAI,CAACS,CAAC,CAAC,KAAK,GAAG,EAAE;MACnBD,OAAO,EAAE;MACTD,GAAG,GAAGI,IAAI,CAACJ,GAAG,CAACA,GAAG,EAAEC,OAAO,CAAC;IAC9B,CAAC,MAAM;MACLA,OAAO,GAAG,CAAC;IACb;EACF;EAEA,OAAOD,GAAG;AACZ","ignoreList":[]}