{"library":"squeezit","title":"Squeezit Image Optimizer","type":"library","description":"Squeezit (current stable version 1.17.0) is a versatile, lossless-first image optimization utility offered as a command-line interface (CLI), a JavaScript/TypeScript API, and a comprehensive suite of bundler plugins. It targets a wide array of modern and legacy image formats including PNG, JPEG, GIF, WebP, SVG, AVIF, HEIC, JXL, ICO, and BMP, focusing on reducing file sizes without noticeable degradation. The project exhibits active development, frequently integrating with contemporary build tools. Its key differentiators include broad format support, a user-friendly CLI with clear output, robust pattern matching for file selection (supporting shell-style and glob expressions), and a safe, threshold-based replacement mechanism to prevent unnecessary file churn. Squeezit integrates directly with ecosystems like Gulp, Grunt, Vite, Webpack, Rollup, Parcel, Astro, Next.js, esbuild, and Babel, making it suitable for a diverse range of development workflows and CI/CD pipelines.","language":"javascript","status":"active","last_verified":"Tue Apr 21","install":{"commands":["npm install squeezit"],"cli":{"name":"squeezit","version":null}},"imports":["import { optimizeFile } from 'squeezit'","import { squeezitGulp } from 'squeezit/gulp'","const { registerSqueezitTask } = require('squeezit/grunt')","import { squeezitVite } from 'squeezit/vite'"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/ghaschel/squeeze","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/squeezit","openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import { optimizeFile } from 'squeezit';\nimport { promises as fs } from 'fs';\nimport path from 'path';\n\nasync function runOptimization() {\n  const imagePath = path.join(process.cwd(), 'example.png');\n  const outputPath = path.join(process.cwd(), 'optimized-example.png');\n\n  // Create a dummy image file for demonstration if it doesn't exist\n  try {\n    await fs.access(imagePath);\n  } catch (error) {\n    console.log(`Creating dummy file at ${imagePath}`);\n    // Minimal PNG base64 representation (1x1 transparent PNG)\n    const dummyPngBuffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=', 'base64');\n    await fs.writeFile(imagePath, dummyPngBuffer);\n  }\n\n  console.log(`Optimizing ${imagePath}...`);\n  const result = await optimizeFile(imagePath, { \n    output: outputPath,\n    overwrite: true, // Overwrite if target path is the same\n    dryRun: false // Set to true to preview without saving\n  });\n\n  if (result.success) {\n    console.log(`Optimization successful:`);\n    console.log(`  Original size: ${result.originalSize} bytes`);\n    console.log(`  Optimized size: ${result.optimizedSize} bytes`);\n    console.log(`  Reduction: ${((1 - result.optimizedSize / result.originalSize) * 100).toFixed(2)}%`);\n    console.log(`  Output to: ${outputPath}`);\n  } else {\n    console.error(`Optimization failed: ${result.error}`);\n  }\n\n  // Clean up the dummy file\n  await fs.unlink(imagePath);\n  if (result.success) {\n    await fs.unlink(outputPath);\n  }\n}\n\nrunOptimization().catch(console.error);","lang":"typescript","description":"Demonstrates programmatic image optimization using the core `optimizeFile` API, creating a temporary file and reporting optimization results.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}