legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
46 lines • 1.63 kB
JavaScript
import { PdfGenerator } from '../pdf-generator.js';
export class PuppeteerConnector {
name = 'puppeteer';
async isAvailable() {
try {
await import('puppeteer');
return true;
}
catch {
return false;
}
}
async generatePdf(html, outputPath, options) {
const generator = new PdfGenerator();
await generator.generatePdfFromHtml(html, outputPath, {
format: options.format,
margin: options.margin,
landscape: options.landscape,
headerTemplate: options.headerTemplate,
footerTemplate: options.footerTemplate,
displayHeaderFooter: Boolean(options.headerTemplate || options.footerTemplate),
});
}
async getInfo() {
let version = 'unknown';
try {
const pkg = await import('puppeteer/package.json');
version = pkg.version ?? 'unknown';
}
catch {
/* optional import - version unknown is fine */
}
const generator = new PdfGenerator();
// `getChromeExecutable` is an internal method on PdfGenerator that exposes
// the path resolved by the bundled Puppeteer. It is not part of the public
// type, so we use a structural cast to read it without modifying PdfGenerator's
// public surface.
const executablePath = generator.getChromeExecutable?.();
return {
name: this.name,
version,
executablePath: executablePath ?? undefined,
};
}
}
//# sourceMappingURL=puppeteer-connector.js.map