← back to HERMES

demo/snap.mjs

20 lines

#!/usr/bin/env node
// Render demo/output/index.html to a PNG via headless Chromium.
import path from 'node:path';
import { fileURLToPath, pathToFileURL } from 'node:url';

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const HTML = path.join(__dirname, 'output', 'index.html');
const PNG = path.join(__dirname, 'output', 'snapshot.png');

const { chromium } = await import('/Users/macstudio3/Projects/animals/node_modules/playwright/index.mjs');

const browser = await chromium.launch();
const ctx = await browser.newContext({ viewport: { width: 1600, height: 1100 }, deviceScaleFactor: 2 });
const page = await ctx.newPage();
await page.goto(pathToFileURL(HTML).href);
await page.waitForLoadState('networkidle');
await page.screenshot({ path: PNG, fullPage: true });
await browser.close();
console.log(`✓ ${PNG}`);