kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
104 lines (103 loc) • 3.7 kB
TypeScript
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;
}