Condense v1.0.0 provides three versatile integration surfaces:
- Programmatic SDK & Fluent Pipelines for deep application logic.
- Worker Pool for high-throughput multi-threaded batch operations.
- HTTP Server & Middleware for network microservices and Express applications.
- CLI for terminal-based and build-script asset processing.
Import helpers directly from @studioframes/condense:
const {
createPipeline,
WorkerPool,
getWorkerPool,
optimizePerceptualImage,
generateResponsiveMatrix,
packSvgSprites,
optimizeZip,
optimizeFont,
optimizePdf,
mangleTokens,
optimizeImage,
optimizeText,
optimizeMediaStream,
extractVideoThumbnail,
optimizeEsbuild,
optimizeWasm,
presetService,
telemetryService,
condenseApp,
} = require('@studioframes/condense');Constructs a chainable processing pipeline for an input Buffer or string.
Methods:
.preset(presetName): Applies a pre-configured recipe (e.g.'web-hero','avatar-thumbnail','production-bundle')..resize({ width, height, fit }): Resizes image assets..perceptual({ targetSsim, targetPsnr, format }): Runs binary search perceptual optimization..minify(options): Minifies text/code assets..toBuffer(): Executes pipeline and returns aPromise<Buffer>..toStream(): Executes pipeline and returns a readable Stream.
const buffer = await createPipeline(rawImage, 'image/jpeg')
.preset('web-hero')
.toBuffer();Optimizes an image via binary search against SSIM/PSNR mathematical thresholds.
Parameters:
buffer(Buffer): Source image data.mimeType(string): Input MIME (e.g.,'image/jpeg','image/png').options(object):targetSsim(number, default:0.95): SSIM index target (0.0 to 1.0).targetPsnr(number, optional): Minimum PSNR threshold in dB.format(string, optional): Target format ('webp','avif','jpeg','png').maxIterations(number, default:6): Binary search iterations.
Returns: Promise<{ buffer: Buffer, ssim: number, psnr: number, finalQuality: number, outMime: string }>
Generates multi-resolution variants across standard breakpoints and modern formats (WebP/AVIF).
Parameters:
buffer(Buffer): Input image buffer.mimeType(string): Input MIME type.options(object):widths(number[], default:[320, 640, 1024, 1920]): Breakpoint widths.formats(string[], default:['avif', 'webp']): Output formats.method(string):'quality','balanced', or'extreme'.
Returns: Promise<{ variants: Array<{ width, format, buffer, byteLength }>, html: string }>
Packs an array of individual SVG strings or buffers into a consolidated <svg><defs><symbol> spritesheet.
Parameters:
svgItems(Array<{ id: string, content: string|Buffer }>): List of icons.options(object, optional): Configuration for SVGO minification.
Returns: string (The combined SVG spritesheet markup).
Recursively decompresses, optimizes internal assets (images, text, fonts, binaries), and repacks the ZIP in memory.
Parameters:
zipBuffer(Buffer): Input ZIP archive.options(object):method(string):'quality','balanced', or'extreme'.level(number, default:9): DEFLATE compression level.
Returns: Promise<{ buffer: Buffer, originalSize: number, optimizedSize: number, processedFiles: number }>
Strips non-essential metadata tables from TrueType and OpenType font binaries.
Parameters:
fontBuffer(Buffer): Font binary data.mimeType(string):'font/ttf','font/otf','font/woff'.options(object):tablesToDrop(string[], default:['DSIG', 'hdmx', 'LTSH', 'PCLT']).
Returns: Promise<{ buffer: Buffer, droppedTables: string[], byteLength: number }>
Coordinately minifies class names and IDs across interdependent HTML, CSS, and JS.
Parameters:
{ html?: string, css?: string, js?: string }options(object):prefix(string, default:'_'): Prefix for generated tokens.reserved(string[]): Tokens that should not be renamed.
Returns: { html?: string, css?: string, js?: string, tokenMap: Record<string, string> }
For CPU-intensive batch jobs, offload work to background worker_threads:
const { getWorkerPool } = require('@studioframes/condense');
const pool = getWorkerPool({ maxWorkers: 4 });
const result = await pool.execute('optimizeImage', {
buffer: rawBuffer,
mimeType: 'image/png',
method: 'balanced',
});Condense runs as an Express router or standalone microservice.
Accepts a multipart file upload (file field).
Form parameters:
method:'quality','balanced','extreme'width,height,fit: Optional image dimensionstargetSsim: Perceptual SSIM target (e.g.0.95)preset: Pre-configured optimization recipe namefaststart: MP4 faststart streaming flagthumbnail: Video thumbnail extraction flag
Returns process status, uptime, and system memory diagnostics.
Built-in recipes: web-hero, avatar-thumbnail, production-bundle, ultra-archive, email-safe, social-share.
Register custom presets:
presetService.registerPreset('my-recipe', {
image: { method: 'extreme', format: 'webp', targetSsim: 0.92 },
text: { method: 'extreme' },
});Track bandwidth savings and estimated financial ROI in real time:
const stats = telemetryService.getMetrics();
console.log(`Saved ${stats.totalSavedBytesFormatted} ($${stats.estimatedCostSavingsUsd})`);