npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

squasher

v2.0.2

Published

Simple HTTP endpoint to squash images - designed to run as a Docker container, but can run standalone

Downloads

8

Readme

Squash

Simple HTTP endpoint to squash images - designed to run as a Docker container, but can run standalone

Installation

Since the module is not yet available on npm, you must install this manually using git, for instance:

$ npm install abstractvector/squasher

Squash exposes an HTTP server on port 3000.

Usage

The HTTP endpoint exists at the root / and expects to be POSTed an image file. You should ensure that the Content-Type header is correct.

For a very simple usage, you can use curl:

$ curl -v \
       -H 'Content-Type: image/jpeg' \
       -H 'Accept: image/webp,image/apng,image/*,*/*;q=0.8' \
       --data-binary @/path/to/my/image.jpg \
       http://localhost:3000 1>/dev/null

Image Formats

Squasher will use the Accept header to decide what image type to return - it will return the smallest file size of the available image type: JPEG, PNG or WebP.

Because many browsers specify image/* in their Accept header but don't actually support image/webp, Squasher does a strict check looking for image/webp to be explicitly stated. If image/webp is not explicitly stated then it is assumed that the client does not support WebP. JPEG and PNG support are still allowed by image/* however.

Operations

Operations are available to manipulate the image before it is returned. These are specified on the URL and you can chain multiple together.

Size

Format: /size=<width>x<height>

Example|Action ---|--- /size=300x200|Resizes the image to a maximum of 300x200, cropping if it exceeds this /size=300|Resizes the width to 300px whilst retaining the aspect ratio /size=x200|Resizes the height to 200px whilst retaining the aspect ratio

To Do

  • Add unit tests
  • Document crop feature
  • Add more image manipulation features
  • Improve error handling
  • Allow configuration, especially for compression
  • Support restrictions for allowed operations
  • Add caching