@browserless/screenshot
Version:
Take a clean screenshot of any website
23 lines (15 loc) • 665 B
JavaScript
const NullProtoObj = require('null-prototype-object')
const { readFile } = require('fs/promises')
const isHttpUrl = require('is-url-http')
const path = require('path')
const CACHE = new NullProtoObj()
const GET_THEME_PATH = () => require('prism-themes').themesDirectory
const THEME_PATH = () => CACHE.root || (CACHE.root = GET_THEME_PATH())
module.exports = async themeId => {
if (isHttpUrl(themeId)) return `<link rel="stylesheet" type="text/css" href="${themeId}">`
const stylesheet =
CACHE[themeId] ||
(CACHE[themeId] = await readFile(path.resolve(THEME_PATH(), `prism-${themeId}.css`)))
return `<style>${stylesheet}</style>`
}