UNPKG

evelodb

Version:

A high-performance native B-tree database for Node.js. Made by Evelocore.

45 lines (44 loc) 1.41 kB
/** * imageProcess.ts * * Performance architecture: * * 1. LRU cache (hash + config key → processed Buffer) * → cache hit = zero Sharp involvement, zero decode * * 2. Metadata fast path: read dimensions from a tiny * `sharp(buf).metadata()` call only when pixel-budget * resize is needed. For all other paths, metadata is skipped. * * 3. AVIF concurrency limiter (default: 2 parallel encodes) * → prevents CPU saturation under burst traffic * * 4. AVIF effort = 2 (was implicit 4-5) * → 2–4× faster AVIF encode, ~5% larger file — fair trade * * 5. mozjpeg disabled * → standard libjpeg is 3–5× faster */ export interface ImageProcessConfig { returnBase64?: boolean; quality?: number; pixels?: number; blackAndWhite?: boolean; mirror?: boolean; upToDown?: boolean; invert?: boolean; brightness?: number; contrast?: number; maxWidth?: number | null; maxHeight?: number | null; } export default function processImage(imageBuffer: Buffer, fileExtension: string, config?: ImageProcessConfig): Promise<string | Buffer>; /** Wipe the entire processed image cache */ export declare function clearImageCache(): void; /** Current cache stats for monitoring */ export declare function imageCacheStats(): { entryCount: number; usedBytes: number; maxBytes: number; utilizationPct: number; };