UNPKG

browsertime

Version:

Get performance metrics from your web page using Browsertime.

81 lines (74 loc) 1.86 kB
import path from 'node:path'; import { pathToFolder } from '../pathToFolder.js'; import { loadCustomJimp } from '../../screenshot/loadCustomJimp.js'; import { getLogger } from '@sitespeed.io/log'; const log = getLogger('browsertime'); export async function savePngWithoutResize( name, data, url, storageManager, dir, options ) { return storageManager.writeData( `${name}.png`, data, path.join(pathToFolder(url, options), dir) ); } export async function savePng( name, data, url, storageManager, config, dir, options ) { const jimp = await loadCustomJimp(); if (jimp) { const image = await jimp.read(data); const buffer = await image .scaleToFit({ w: config.maxSize, h: config.maxSize }) .getBuffer('image/png'); return storageManager.writeData( `${name}.png`, buffer, path.join(pathToFolder(url, options), dir) ); } else { log.info( 'Missing Jimp dependency so you can only save images as png at viewport size' ); return savePngWithoutResize(name, data, url, storageManager, dir, options); } } export async function saveJpg( name, data, url, storageManager, config, dir, options ) { const jimp = await loadCustomJimp(); if (jimp) { const image = await jimp.read(data); // https://github.com/sitespeedio/sitespeed.io/issues/3922 const buffer = await image .scaleToFit({ w: config.maxSize, h: config.maxSize }) .getBuffer('image/jpeg', { quality: config.jpg.quality }); return storageManager.writeData( `${name}.jpg`, buffer, path.join(pathToFolder(url, options), dir) ); } else { log.info( 'Missing Jimp dependency so you can only save images as png at viewport size' ); return savePngWithoutResize(name, data, url, storageManager, dir, options); } }