@deliverart/sdk-js-image
v2.5.23
Published
Deliverart JavaScript SDK for Image Management
Readme
@deliverart/sdk-js-image
Image management package for the DeliverArt JavaScript SDK.
Installation
npm install @deliverart/sdk-js-image @deliverart/sdk-js-coreExported Types
Core Types
Image- Image metadataImageDetails- Extended image with URLs
IRI Types
ImageIri- Image IRI (/images/:id)
Available Requests
GetImages
Get list of images with filters.
import { GetImages } from '@deliverart/sdk-js-image';
const images = await sdk.call(new GetImages({
query: {
company: '/companies/123',
page: 1
}
}));Query Parameters:
company?: string- Filter by companypage?: number- Page number
Response: Paginated<Image>
GetImageDetails
Get detailed information about a specific image.
import { GetImageDetails } from '@deliverart/sdk-js-image';
const image = await sdk.call(new GetImageDetails('image-123'));Parameters:
imageId: string(required)
Response: ImageDetails
DeleteImage
Delete an image.
import { DeleteImage } from '@deliverart/sdk-js-image';
await sdk.call(new DeleteImage('image-123'));Parameters:
imageId: string(required)
Response: void
Upload Images
Image uploads typically use multipart/form-data. Example:
import { AbstractApiRequest } from '@deliverart/sdk-js-core';
import { z } from 'zod';
// Custom upload request (if not provided by the package)
class UploadImage extends AbstractApiRequest<
typeof z.instanceof(FormData),
typeof imageResponseSchema
> {
readonly method = 'POST';
readonly contentType = 'multipart/form-data';
readonly accept = 'application/json';
readonly inputSchema = z.instanceof(FormData);
readonly outputSchema = imageResponseSchema;
constructor(formData: FormData) {
super(formData);
}
getPath(): string {
return '/images';
}
}
// Usage
const formData = new FormData();
formData.append('file', fileBlob, 'image.jpg');
formData.append('company', '/companies/123');
const image = await sdk.call(new UploadImage(formData));Complete Usage Example
import { sdk } from './lib/sdk';
import { GetImages, DeleteImage } from '@deliverart/sdk-js-image';
async function imageManagement() {
// Get all company images
const images = await sdk.call(new GetImages({
query: {
company: '/companies/123'
}
}));
console.log(`Found ${images.pagination.totalItems} images`);
// Delete old images
for (const image of images.data) {
if (shouldDelete(image)) {
await sdk.call(new DeleteImage(image.id));
}
}
}License
MIT
