@unbrowse/puppeteer-shim
v0.1.0
Published
Drop-in replacement for puppeteer. page.goto() short-circuits through Unbrowse's resolved-route cache ($0 on hit) and falls through to real puppeteer on miss — same launch/newPage/goto/content surface, pay per cached call instead of per browser-hour.
Downloads
87
Maintainers
Readme
@unbrowse/puppeteer-shim
One-line drop-in for puppeteer. $0 per cached call instead of per browser-hour.
- import puppeteer from 'puppeteer';
+ import puppeteer from '@unbrowse/puppeteer-shim';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://site.com/data');
const html = await page.content();
await browser.close();page.goto() short-circuits through Unbrowse's marketplace cache. Cache hit →
free synthesized response served to content() / title() / url(). Miss →
falls through to the real puppeteer (an optional peer dep) so your existing
code keeps working — you only pay per cached call instead of per browser-hour
for any URL already indexed.
Install
npm i @unbrowse/puppeteer-shim
# optional, for live-DOM fallback on cache misses:
npm i puppeteerNo API key required for cached reads. Set UNBROWSE_API_KEY /
UNBROWSE_X_PAYMENT to route paid endpoints.
Honest scope
goto/content/title/url, and evaluate(() => document.title) /
evaluate(() => document.documentElement.outerHTML), are served from the cached
body. Anything needing a live DOM — click, type, screenshot,
waitForSelector, non-trivial evaluate — requires the real puppeteer
fallback to be installed.
Attribution
This shim mirrors the public surface of
puppeteer (Apache-2.0). On a cache
miss it IS puppeteer; the shim only lowers cost on hits, never replaces it.
