rasterize() and renderPreview() turn a .gui into a bitmap — the preview.webp at pack time, plus PNG/JPEG — driving Chromium via puppeteer-core by default.

/rasterize

outputmarkup → bitmap

Turns 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' })