UNPKG

kentico-cloud-delivery

Version:

Official Kentico Cloud Delivery SDK

104 lines (103 loc) 3.7 kB
import { IHeader, IHttpRequestConfig, IHttpRequestResponse, IHttpService } from 'kentico-cloud-core'; import { ElementResolver } from '../elements'; import { ElementCollisionResolver, IProxyUrlData, IQueryConfig, TypeResolver } from '../models'; export interface IDeliveryClientProxyConfig { /** * Base url used for preview reqeusts. Defaults to 'preview-deliver.kenticocloud.com' */ basePreviewUrl?: string; /** * Can be used to generate custom request urls. * Useful when you have a proxy server and need to transform url to a specific format * and setting 'baseUrl' is not sufficient. */ advancedProxyUrlResolver?: (data: IProxyUrlData) => string; /** * Base url used for all requests. Defaults to 'deliver.kenticocloud.com' */ baseUrl?: string; } export interface IDeliveryClientConfig { /** * ProjectId of your Kentico Cloud project */ projectId: string; /** * Type resolver is used to create an instance of class based on content item's type. For example, * if content item has 'article' content type (system.type), you can map it to 'Article' class with * properties, methods and global content item configuration. * If not set, content item will use default 'ContentItem' class */ typeResolvers?: TypeResolver[]; /** * Preview API key */ previewApiKey?: string; /** * Secure API key * Important: Use secured API only when running on Node.JS server, otherwise * your key will be visible in browsers when making requests. */ secureApiKey?: string; /** * Resolver used for using custom models for custom elements. */ elementResolver?: ElementResolver; /** * When enabled, additional information are logged in console for certain issues. * Disable in production environments. */ isDeveloperMode?: boolean; /** * Proxy configuration */ proxy?: IDeliveryClientProxyConfig; /** * Default language of content items */ defaultLanguage?: string; /** * Number of retry attempts for failed requests. Defaults to 3. To disable retries set use 0. */ retryAttempts?: number; /** * Can be used to inject custom Http service to perform requests */ httpService?: IHttpService; /** * Global settings for linked item resolver */ linkedItemResolver?: { /** * Element used for wrapping resolved linked item */ linkedItemWrapperTag?: string; /** * CSS classes applied to wrapper */ linkedItemWrapperClasses?: string[]; }; /** * Interceptors of HTTP requests. This may be used to alter request before its sent or response after its received. */ httpInterceptors?: { requestInterceptor?: (config: IHttpRequestConfig) => IHttpRequestConfig; responseInterceptor?: (config: IHttpRequestResponse) => IHttpRequestResponse; }; /** * Extra headers added to each http request */ globalHeaders?: (queryConfig: IQueryConfig) => IHeader[]; /** * Resolver used when content item properties would overlap. Collision resolver can be used to change property name to avoid conflicts. */ collisionResolver?: ElementCollisionResolver; /** * Array of status codes that should be retried when request fails. Defaults [500]. */ retryStatusCodes?: number[]; /** * Default query configuration. Can be overriden by individual queries. */ globalQueryConfig?: IQueryConfig; }