@kontent-ai/delivery-sdk
Version:
Official Kontent.AI Delivery API SDK
47 lines (46 loc) • 2.38 kB
TypeScript
import { IDeliveryClientConfig } from '../config';
import { Contracts } from '../contracts';
import { IContentItem, IContentItemsContainer, IContentItemWithRawDataContainer } from '../models';
export interface IMapItemResult<TContentItem extends IContentItem = IContentItem, TLinkedItemType extends IContentItem = IContentItem> {
item: TContentItem;
processedItems: IContentItemsContainer<TLinkedItemType>;
preparedItems: IContentItemWithRawDataContainer;
processingStartedForCodenames: string[];
}
export interface IMultipleItemsMapResult<TContentItem extends IContentItem = IContentItem, TLinkedItemType extends IContentItem = IContentItem> {
items: TContentItem[];
linkedItems: IContentItemsContainer<TLinkedItemType>;
}
export interface ISingleItemMapResult<TContentItem extends IContentItem = IContentItem, TLinkedItemType extends IContentItem = IContentItem> {
item: TContentItem;
linkedItems: IContentItemsContainer<TLinkedItemType>;
}
export declare class ItemMapper<TContentItemType extends IContentItem> {
readonly config: IDeliveryClientConfig;
private readonly elementMapper;
constructor(config: IDeliveryClientConfig);
/**
* Maps single item to its proper strongly typed model from the given response
* @param response Response used to map the item
* @param queryConfig Query configuration
*/
mapSingleItemFromResponse<TContentItem extends TContentItemType = TContentItemType>(response: Contracts.IViewContentItemContract): ISingleItemMapResult<TContentItem, TContentItemType>;
/**
* Maps multiple items to their strongly typed model from the given response
* @param response Response used to map the item
* @param queryConfig Query configuration
*/
mapMultipleItemsFromResponse<TContentItem extends TContentItemType = TContentItemType>(response: Contracts.IItemsWithModularContentContract): IMultipleItemsMapResult<TContentItem, TContentItemType>;
/**
* Maps item contracts to full models
*/
mapItems<TContentItem extends TContentItemType = TContentItemType>(data: {
mainItems: Contracts.IContentItemContract[];
linkedItems: Contracts.IContentItemContract[];
}): IMultipleItemsMapResult<TContentItem, TContentItemType>;
/**
* Maps item contract to full model
*/
private mapItem;
private createContentItem;
}