Utilities
Helper functions exported from the SDK for common operations.
sleep(ms)
Pause execution for a given number of milliseconds.
import { sleep } from '@scrayle/sdk';
await sleep(2000); // Wait 2 secondsretry(fn, options)
Retry an async function with exponential backoff.
import { retry } from '@scrayle/sdk';
const result = await retry(
async () => {
const res = await fetch('https://example.com');
if (!res.ok) throw new Error('Request failed');
return res.json();
},
{
retries: 3,
minTimeout: 1000,
maxTimeout: 10000,
factor: 2,
}
);log / createLogger
Structured logging with configurable levels.
import { log, createLogger } from '@scrayle/sdk';
// Default logger
log.info('Starting scrape');
log.warn('Rate limited');
log.error('Failed', new Error('timeout'));
// Custom logger with prefix
const logger = createLogger('my-scraper');
logger.info('Processing page');
// [my-scraper] INFO: Processing pageLog Levels
Set via the LOG_LEVEL environment variable:
| Level | Description |
|---|---|
trace | Most verbose - all output |
debug | Debug messages and above |
info | Informational messages (default) |
warn | Warnings and errors only |
error | Errors only |
Browser Helpers
import { Playwright, Puppeteer, SeleniumBrowser } from '@scrayle/sdk';
// Playwright connection
const playwright = new Playwright();
const browser = await playwright.connect(wsEndpoint);
// Puppeteer connection
const puppeteer = new Puppeteer();
const browser = await puppeteer.connect(wsEndpoint);
// Selenium connection
const selenium = new SeleniumBrowser();
const driver = await selenium.connect(wsEndpoint);