@smile/strapi-client
Version:
An HTTP client for Strapi focused on content and media creation (for mass data migration from another CMS/datasource)
57 lines (56 loc) • 1.77 kB
TypeScript
export interface JSONResponse {
status?: number;
data: {
documentId: number;
};
error?: {
status: number;
};
}
export interface FileUploadFormat {
hash: string;
ext: string;
mime: string;
size: number;
url: string;
name: string;
width: number;
height: number;
}
export interface FileUploadResponse extends FileUploadFormat {
id: number;
alternativeText: any;
caption: any;
formats: {
small: FileUploadFormat;
medium: FileUploadFormat;
thumbnail: FileUploadFormat;
};
previewUrl: string;
provider: string;
provider_metadata: any;
createdAt: Date;
updatedAt: Date;
}
export interface MediaFolderCreation {
data: {
id: number;
};
}
export declare class StrapiClient {
private strapiBaseUrl;
private token;
private adminToken?;
private readonly apiBaseUrl;
private schedulerPlugin?;
constructor(strapiBaseUrl: string, token: string, adminToken?: string | undefined);
configureScheduler(plugin: '@webbio-strapi-plugin-scheduler' | 'strapi-plugin-publisher'): void;
createEntry<T>(apiId: string, data: T): Promise<JSONResponse>;
updateEntry<T>(apiId: string, id: string | number, data: Partial<T>): Promise<JSONResponse>;
addMediaAsset(assetPathOrUrl: string, alt?: string, caption?: string): Promise<FileUploadResponse[]>;
createMediaFolder(folderName: string, parentId?: number | null): Promise<MediaFolderCreation>;
moveMedia(folderId: number, mediaIds: number[]): Promise<void>;
addPublishDate(contentType: string, id: number, date: Date): Promise<void>;
addUnpublishDate(contentType: string, id: number, date: Date): Promise<void>;
private _addPublisherDate;
}