perspectapi-ts-sdk
Interfaces
ImageTransformOptionsResponsiveImageSizes
Variables
DEFAULT\_IMAGE\_SIZES
Functions
buildImageUrlgenerateResponsiveImageHtmlgenerateResponsiveUrlsgenerateSizesAttributegenerateSrcSettransformMediaItem
Interface: ImageTransformOptions
Cloudflare Image Resizing Integration Transforms images on-the-fly using Cloudflare's Image Resizing service https://developers.cloudflare.com/images/transform-images/transform-via-url/
Properties
background?
optionalbackground?:string
blur?
optionalblur?:number
dpr?
optionaldpr?:number
fit?
optionalfit?:"scale-down"|"contain"|"cover"|"crop"|"pad"
format?
optionalformat?:"auto"|"avif"|"webp"|"json"|"jpeg"|"png"
gravity?
optionalgravity?:"auto"|"left"|"right"|"top"|"bottom"|"center"
height?
optionalheight?:number
imageUrlPrefix?
optionalimageUrlPrefix?:string
URL prefix for image transform paths. Defaults to '/_image'.
metadata?
optionalmetadata?:"keep"|"copyright"|"none"
quality?
optionalquality?:number
rotate?
optionalrotate?:0|90|180|270
sharpen?
optionalsharpen?:number
trim?
optionaltrim?:object
bottom?
optionalbottom?:number
left?
optionalleft?:number
right?
optionalright?:number
top?
optionaltop?:number
width?
optionalwidth?:number
Interface: ResponsiveImageSizes
Properties
large
large:
ImageTransformOptions
medium
medium:
ImageTransformOptions
original
original:
ImageTransformOptions
small
small:
ImageTransformOptions
thumbnail
thumbnail:
ImageTransformOptions
Function: buildImageUrl()
buildImageUrl(
baseUrl,mediaPath,options?):string
Build Cloudflare Image Resizing URL
Parameters
baseUrl
string
The base URL of your API (e.g., "https://api.perspect.comm")
mediaPath
string
The path to the media file (e.g., "media/site/image.jpg")
options?
ImageTransformOptions
Transform options
Returns
string
Cloudflare Image Resizing URL
Example
const url = buildImageUrl(
'https://api.perspect.comm',
'media/mysite/photo.jpg',
{ width: 400, format: 'webp', quality: 85 }
);
// Returns: '/cdn-cgi/image/width=400,format=webp,quality=85/https://api.perspect.comm/media/mysite/photo.jpg'
Function: generateResponsiveImageHtml()
generateResponsiveImageHtml(
baseUrl,mediaPath,alt,options?):string
Helper to generate complete responsive image HTML
Parameters
baseUrl
string
mediaPath
string
alt
string
options?
className?
string
decoding?
"async" | "sync" | "auto"
loading?
"lazy" | "eager"
sizes?
string
widths?
number[]
Returns
string
Example
const html = generateResponsiveImageHtml(
'https://api.perspect.comm',
'media/mysite/photo.jpg',
'My photo',
{ className: 'rounded-lg', loading: 'lazy' }
);
Function: generateResponsiveUrls()
generateResponsiveUrls(
baseUrl,mediaPath,sizes?):Record<keyofResponsiveImageSizes,string>
Generate responsive image URLs for different sizes
Parameters
baseUrl
string
mediaPath
string
sizes?
ResponsiveImageSizes = DEFAULT_IMAGE_SIZES
Returns
Record<keyof ResponsiveImageSizes, string>
Example
const urls = generateResponsiveUrls(
'https://api.perspect.comm',
'media/mysite/photo.jpg'
);
// Returns: { thumbnail: '...', small: '...', medium: '...', large: '...', original: '...' }
Function: generateSizesAttribute()
generateSizesAttribute(
breakpoints?):string
Generate sizes attribute for responsive images
Parameters
breakpoints?
object[] = ...
Returns
string
Example
const sizes = generateSizesAttribute();
// Returns: "(max-width: 640px) 100vw, (max-width: 768px) 80vw, ..."
Function: generateSrcSet()
generateSrcSet(
baseUrl,mediaPath,widths?):string
Generate srcset for responsive images
Parameters
baseUrl
string
mediaPath
string
widths?
number[] = ...
Returns
string
Example
const srcset = generateSrcSet(
'https://api.perspect.comm',
'media/mysite/photo.jpg',
[400, 800, 1200]
);
// Returns: "...?width=400 400w, ...?width=800 800w, ...?width=1200 1200w"
Function: transformMediaItem()
transformMediaItem(
baseUrl,media,sizes?):Record<keyofResponsiveImageSizes,string>
Transform a MediaItem into responsive URLs Convenience function for working with MediaItem objects from the API
Parameters
baseUrl
string
media
{ link: string; } | { r2_key: string; site_name: string; }
sizes?
ResponsiveImageSizes
Returns
Record<keyof ResponsiveImageSizes, string>
Example
import { transformMediaItem } from 'perspectapi-ts-sdk';
const product = await client.products.getProduct('mysite', 123);
const media = product.data.media?.[0];
if (media) {
const urls = transformMediaItem('https://api.perspect.comm', media);
console.log(urls.thumbnail); // Cloudflare-transformed thumbnail URL
}
Variable: DEFAULT_IMAGE_SIZES
constDEFAULT_IMAGE_SIZES:ResponsiveImageSizes
Default responsive image sizes