/*** @ Base: https://carbon.now.sh/ @ Author: Shannz @ Note: Beautify your code with carbon with many styles. ***/ import mql from '@microlink/mql'; const CARBON_CONFIG = { bg: 'rgba(226,233,239,1)', t: 'dracula-pro', //seti, one-light, one-dark, verminal, night-owl, nord, synthwave-84, 3024-night, blackboard, base16-dark, base16-light, cobalt, duotone-dark, hopscotch, lucario, material, monokai, oceanic-next, panda-syntax, paraiso-dark, solarized, twilight, yeti, zenburn wt: 'none', l: 'auto', ds: 'false', dsyoff: '20px', dsblur: '68px', wc: 'true', wa: 'true', pv: '56px', ph: '56px', ln: 'true', fl: '1', fm: 'Fira Code', //Monoid, Fantasque Sans Mono, Hack, JetBrains Mono, Cascadia Code, IBM Plex Mono, Anonymous Pro, Droid Sans Mono, Inconsolata, Source Code Pro, Ubuntu Mono, Space Mono fs: '14px', lh: '152%', si: 'false', es: '2x', wm: 'false', }; export const carbon = async (codeSnippet) => { try { const params = new URLSearchParams(CARBON_CONFIG); params.append('code', codeSnippet); const targetUrl = `https://carbon.now.sh/?${params.toString()}`; const { data } = await mql(targetUrl, { screenshot: { element: '.export-container', optimizeForSpeed: true }, viewport: { width: 1024, height: 768 }, waitFor: 3000, meta: false, }); if (data.screenshot && data.screenshot.url) { return { success: true, image: data.screenshot.url, font: CARBON_CONFIG.fm, theme: CARBON_CONFIG.t }; } else { throw new Error('Screenshot URL tidak ditemukan dalam response.'); } } catch (error) { console.error('Error generating Carbon URL:', error.message); return null; } };