@betttercms/image-url
v0.1.0
Published
Build optimized BetterCMS image URLs with a chainable, immutable builder.
Downloads
172
Readme
@betttercms/image-url
Chainable, immutable builder for optimized BetterCMS image URLs — the
@sanity/image-url of BetterCMS. Zero runtime dependencies; assembles URLs
against the media transform endpoint (GET /media/:id?w&h&format&quality&fit&dpr).
Install
npm install @betttercms/image-urlUsage
import imageUrlBuilder from "@betttercms/image-url";
const urlFor = imageUrlBuilder({ baseUrl: "https://media.bettercms.ai" });
// From an asset id, a MediaAsset object, or an existing media URL:
urlFor(asset).width(800).format("webp").quality(80).url();
// → https://media.bettercms.ai/media/<id>?w=800&format=webp&quality=80One-shot helper:
import { imageUrl } from "@betttercms/image-url";
imageUrl(asset).size(400, 300).fit("cover").dpr(2).url();Builder methods
| Method | Param → query |
| --- | --- |
| .width(n) / .height(n) | w / h (rounded) |
| .size(w, h) | w + h |
| .format(f) | format (webp|jpeg|png|avif; jpg→jpeg) |
| .quality(q) | quality (clamped 1–100) |
| .fit(f) | fit (cover|contain|fill|inside|outside) |
| .dpr(d) | dpr (clamped 1–3; omitted when 1) |
| .url() / .toString() | render |
baseUrl defaults to https://media.bettercms.ai. Every method returns a new
builder, so chains are safe to fork.
