UNPKG

protoml-parser

Version:

ProtoML is a lightweight, declarative markup language designed for writing and structuring meeting protocols, notes and task lists in a human-readable and machine-parseable format.

34 lines (27 loc) 801 B
const puppeteer = require('puppeteer') const renderHTML = require('./html') const loadTheme = require('./html').loadTheme const deasync = require('deasync') function renderPDF(ast, options = {}) { const html = renderHTML(ast, options) let done = false let result = null let error = null ;(async () => { try { const browser = await puppeteer.launch({ headless: 'new' }) const page = await browser.newPage() await page.setContent(html, { waitUntil: 'networkidle0' }) result = await page.pdf({ format: 'A4' }) await browser.close() } catch (err) { error = err } finally { done = true } })() deasync.loopWhile(() => !done) if (error) throw error return result } module.exports = renderPDF