New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

html-image-generator

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

html-image-generator - npm Package Compare versions

Comparing version

to
2.0.0

3

dist/core.d.ts

@@ -12,4 +12,5 @@ /// <reference types="node" />

generateOptions: GenerateImageOptions;
concurrency?: number;
log?: boolean;
};
export declare const generate: ({ template, data, baseDir, assetsDir, generateOptions, log, }: CoreOptions) => Promise<(Buffer | string | undefined)[]>;
export declare const generate: ({ template, data, baseDir, assetsDir, generateOptions, concurrency, log, }: CoreOptions) => Promise<(Buffer | string | undefined)[]>;

@@ -1,2 +0,1 @@

import { promises as fs } from 'fs';
import path from 'path';

@@ -7,13 +6,16 @@ import pLimit from 'p-limit';

import { closeServer, listenServer } from './modules/server.js';
const limit = pLimit(3);
export const generate = async ({ template, data, baseDir, assetsDir, generateOptions, log = false, }) => {
export const generate = async ({ template, data, baseDir, assetsDir, generateOptions, concurrency = 3, log = false, }) => {
const limit = pLimit(concurrency);
const port = await listenServer(assetsDir);
const images = await Promise.all(data.map((d) => limit(async () => {
const filePath = 'dist' in d && d.dist ? path.resolve(baseDir, d.dist) : undefined;
const html = generateHtml(template, { ...d, assetsDir: `http://localhost:${port}` });
const image = await generateImage(html, generateOptions);
if ('dist' in d && d.dist) {
const file = path.resolve(baseDir, d.dist);
const dir = path.dirname(file);
await fs.mkdir(dir, { recursive: true });
await fs.writeFile(file, image);
const image = await generateImage(html, {
viewport: generateOptions.viewport,
screenshotOptions: {
...generateOptions.screenshotOptions,
path: filePath,
},
});
if (filePath) {
log && console.log(`✔︎ Generated: ${d.dist}`);

@@ -20,0 +22,0 @@ return;

@@ -35,2 +35,3 @@ import { promises as fs } from 'fs';

},
concurrency: options.concurrency,
};

@@ -48,6 +49,6 @@ };

const baseDir = path.resolve(rootDir, dir);
const callback = async (...args) => {
const callback = async () => {
const options = await buildOptions(dir);
const data = options.data.slice(0, 1);
const distFile = path.resolve(baseDir, `_dev.${options.generateOptions.screenshotOptions?.type || 'png'}`);
const distFile = path.resolve(baseDir, `_dev.${options.generateOptions.screenshotOptions?.type ?? 'png'}`);
data[0].dist = distFile;

@@ -54,0 +55,0 @@ await core.generate({

/// <reference types="node" />
import { ScreenshotOptions, Viewport } from 'puppeteer';
import { PageScreenshotOptions, ViewportSize } from 'playwright-core';
export declare type GenerateOptions = {
viewport: Viewport;
screenshotOptions?: ScreenshotOptions;
viewport: ViewportSize;
screenshotOptions?: PageScreenshotOptions;
};
export declare const generate: (html: string, options: GenerateOptions) => Promise<string | Buffer>;
export declare const generate: (html: string, options: GenerateOptions) => Promise<Buffer>;

@@ -1,6 +0,6 @@

import puppeteer from 'puppeteer';
import { chromium } from 'playwright-core';
let launch = null;
const launchBrowser = () => {
if (launch === null) {
launch = puppeteer.launch({
launch = chromium.launch({
headless: true,

@@ -15,6 +15,7 @@ args: ['--no-sandbox', '--font-render-hinting=none'],

const page = await browser.newPage();
await page.setViewport(options.viewport);
await page.setContent(html, { waitUntil: 'networkidle0' });
await page.setViewportSize(options.viewport);
await page.setContent(html, { waitUntil: 'networkidle' });
const image = await page.screenshot(options.screenshotOptions);
await page.close();
return image;
};
{
"name": "html-image-generator",
"version": "1.1.0",
"version": "2.0.0",
"repository": "git@github.com:amotarao/html-image-generator.git",

@@ -41,5 +41,5 @@ "author": "Amon Sawamura <amotarao@gmail.com>",

"p-limit": "^4.0.0",
"puppeteer": "^14.3.0",
"playwright-core": "^1.22.2",
"yargs": "^17.5.1"
}
}

@@ -140,5 +140,6 @@ # HTML Image Generator

height: 630 # required
type: png # optional: png, jpeg or webp. NOT jpg.
type: png # optional: png (default), jpeg or webp. NOT jpg.
quality: 70 # optional: valid with jpeg and webp
omitBackground: true # optional: transparent background
concurrency: 3 # optional
```

@@ -145,0 +146,0 @@