@vansite/ts-sharetribe-flex-sdk
Version:
This is a TypeScript SDK for Sharetribe Flex API. It reduces the complexity of the API and provides a more user-friendly interface.
39 lines (38 loc) • 1.47 kB
TypeScript
/**
* @fileoverview Client for uploading images in the Sharetribe Marketplace API.
*
* Use this to upload images for listings, user profiles, or other resources.
* Returns an image resource with variants ready for responsive display.
*
* @see https://www.sharetribe.com/api-reference/marketplace.html#images
*/
import type { AxiosResponse } from "axios";
import MarketplaceApi from "./index";
import { ExtraParameter, ImagesResponse, ImagesUploadParameter } from "../../types";
/**
* Images API client
*/
declare class Images {
readonly authRequired = true;
private readonly axios;
private readonly endpoint;
private readonly headers;
constructor(api: MarketplaceApi);
/**
* Upload an image
*
* @template P
* @template EP
* @param {P & ImagesUploadParameter} params - Must include `image: File`
* @param {EP} [extraParams] - Optional extra parameters (e.g. `expand: true`)
* @returns {Promise<AxiosResponse<ImagesResponse<"upload", EP>>>}
*
* @example
* const file = inputElement.files[0];
* const { data } = await sdk.images.upload({ image: file });
* console.log(data.id); // → "img-abc123"
* console.log(data.attributes.variants["square-small"]?.url);
*/
upload<P extends ImagesUploadParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<ImagesResponse<"upload", EP>>>;
}
export default Images;