Weserv

Provider documentation

Weserv

Proxy publicly accessible source images through a Weserv service.

Setup

Install the framework package and the core package for the provider import:

npm install @desource/image @desource/image-svelte

Save this as image.config.ts beside your example component. Replace sample domains and identifiers with your own.

import type { ImageConfig } from '@desource/image';
import { weservProvider } from '@desource/image/providers/weserv';

export const imageConfig = {
  provider: 'weserv',
  providers: {
    weserv: weservProvider({
      "baseURL": "https://www.example.com",
      "weservURL": "https://wsrv.nl"
    })
  }
} satisfies ImageConfig;

Registering this provider makes it the default for the configured components. To mix services, register each provider and set provider="weserv" on the image that should use this one.

Image source

Use a relative path on your public origin or an absolute public image URL.

/photo.jpg

Usage

The example uses the shared configuration above and the Svelte image component.

<script lang="ts">
  import { Image, setImageConfig } from '@desource/image-svelte';
  import { imageConfig } from './image.config';

  setImageConfig(imageConfig);
</script>

<Image
  src="/photo.jpg"
  alt="Sample image" width={800} height={500}
  modifiers={{
  "quality": 80,
  "format": "webp",
  "fit": "cover"
}}
/>

Provider options

baseURL
Required public origin of your source images, including the scheme.
weservURL
Weserv service origin. Defaults to https://wsrv.nl.

Pass shared defaults such as screens, domains, aliases and presets to the image configuration. Pass provider-specific defaults as modifiers in the provider factory.

Modifiers

Supports width, height, fit, quality, format, background, pixelDensity, trimImage, sharpen, brightness, saturation, hue, filter, gamma, contrast, blur, mirror and rotate.

Set dimensions on the component and pass service-specific operations through modifiers, as shown above. See the provider source for exact mappings and the service documentation for accepted values.

Provider notes

  • Missing baseURL returns src unchanged with a development warning.
  • The source must be reachable from the Weserv service. Localhost and private files cannot be fetched by the public service.
  • The adapter supplies a filename and enables enlargement through the we flag.
← Back to all providers