/rasterize
outputmarkup → bitmapTurns a .gui into a bitmap — most importantly the preview.webp embedded when packing, but also PNG/JPEG for gui render. It renders the .gui with the built render bundle in a headless page, then screenshots the result.
The kit ships a default rasterizer on puppeteer-core (a light install that drives a system Chromium) and lets you opt into full puppeteer for a bundled browser. If neither finds a browser, packing still succeeds with a placeholder preview and a clear console error — never a hard failure.
Signature
rasterize(pkg: GuiPackage, opts?): Promise<RasterizeResult> renderPreview(pkg: GuiPackage, opts?): Promise<PreviewResult> hasBrowser(engine?: Engine): Promise<boolean> type Engine = 'puppeteer-core' | 'puppeteer' // default via DOTGUI_PUPPETEER
Use cases
- The preview.webp embedded at pack time.
- PNG/JPEG export for gui render.
- Any pipeline that needs a bitmap of a .gui.
Generate the preview.webp for a package
import { renderPreview } from '@dotgui/kit/rasterize' const { preview, ok, reason } = await renderPreview(pkg) // ok === false → placeholder embedded; reason explains why (e.g. 'no-browser')
Pick the engine (default is puppeteer-core)
import { rasterize } from '@dotgui/kit/rasterize' // bundled, reproducible Chromium — heavier install const out = await rasterize(pkg, { engine: 'puppeteer', format: 'png' })