UNPKG

@kontent-ai/delivery-sdk

Version:
47 lines (46 loc) 2.38 kB
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; }