Skip to content

Repository files navigation

Imagor URL Builder

CI npm version

A TypeScript library for building URLs to use with the Imagor image processing server.

Installation

# Using npm
npm install @genox/imagor-url-builder

# Using yarn
yarn add @genox/imagor-url-builder

Basic Usage

import { imagorClient } from '@genox/imagor-url-builder';

// Initialize the client
const client = await imagorClient({
  imagorServer: 'https://your-imagor-server.com',
  imagorServerKey: 'your-optional-key' // Optional if your server doesn't use keys
});

// Build an image processing URL
const imageUrl = await client
  .dimensions(300, 200)    // Resize to 300x200
  .format('webp')          // Convert to WebP format
  .quality(80)             // Set quality to 80%
  .stripMetadata()         // Remove metadata
  .src('https://example.com/original-image.jpg')
  .getUrl();

// Use the URL with your <img> tag or fetch request
console.log(imageUrl);
// Output: https://your-imagor-server.com/hash_if_signed/300x200/filters:format(webp):quality(80):strip_exif():strip_icc()/https://example.com/original-image.jpg

Features

  • Type-safe API with TypeScript
  • Fluent interface for method chaining
  • Support for all Imagor operations:
    • Resizing
    • Cropping
    • Format conversion
    • Quality adjustment
    • Metadata handling
    • And more...
  • Support for metadata retrieval
  • Works with both signed and unsigned URLs

API Overview

Initialization

const client = await imagorClient({
  imagorServer: 'https://your-imagor-server.com',  // Required
  imagorServerKey: 'your-key',                     // Optional
  cacheTtl: 0                                      // Optional cache time in seconds
});

Common Operations

// Resize
client.dimensions(width, height)

// Format conversion
client.format('webp') // Supports: webp, jpeg, png, etc.

// Quality
client.quality(80) // 0-100

// Metadata
client.stripMetadata() // Removes EXIF and ICC data

// Get metadata instead of image
client.meta().src('https://example.com/image.jpg').getUrl()
// Returns a URL that provides JSON metadata when requested

Testing

This project includes integration tests that verify the functionality with an actual Imagor server. To run the tests:

yarn test

The tests use Docker to spin up an Imagor server instance for testing.

License

MIT

About

A TypeScript library for building URLs to use with the Imagor image processing server.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages