UNPKG

@kontent-ai/delivery-sdk

Version:
190 lines 6.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Parameters = void 0; var Parameters; (function (Parameters) { const defaultValue = ''; class QueryParameter { /** * Parameter * @constructor * @param {string} name - Name of the parameter * @param {string} value - Value of the parameter */ constructor(name, value) { this.name = name; this.value = value; if (!name) { throw Error(`Name of the parameter is not specified`); } } getParam() { return `${this.name}=${this.value}`; } } Parameters.QueryParameter = QueryParameter; class ElementsParameter { /** * Sets elements (projection) so that only certain elements from a content item are returned * @constructor * @param {string[]} elementCodenames - Array of element codenames to include in response. */ constructor(elementCodenames) { this.elementCodenames = elementCodenames; } getParam() { return `elements=${this.getParamValue()}`; } getParamValue() { if (!this.elementCodenames) { return defaultValue; } return this.elementCodenames .map((m) => { if (!m) { throw Error(`Codename of 'ElementsParameter' cannot be null or empty`); } return m.trim(); }) .join(','); } } Parameters.ElementsParameter = ElementsParameter; class ExcludeElementsParameter { /** * Sets elements (projection) so that only certain elements are excluded from API response * @constructor * @param {string[]} elementCodenames - Array of element codenames to exclude from API response. */ constructor(elementCodenames) { this.elementCodenames = elementCodenames; } getParam() { return `excludeElements=${this.getParamValue()}`; } getParamValue() { if (!this.elementCodenames) { return defaultValue; } return this.elementCodenames .map((m) => { if (!m) { throw Error(`Codename of 'ExcludeElementsParameter' cannot be null or empty`); } return m.trim(); }) .join(','); } } Parameters.ExcludeElementsParameter = ExcludeElementsParameter; class LimitParameter { /** * Limits the number of items that are returned from response * @constructor * @param {number} limit - Number of elements that will be returned */ constructor(limit) { this.limit = limit; if (limit <= 0) { throw Error(`'LimitParameter' must specify a positive integer`); } } getParam() { return `limit=${this.limit}`; } } Parameters.LimitParameter = LimitParameter; class IncludeTotalCountParameter { /** * Adds 'includeTotalCount' query parameter to query * @constructor */ constructor() { } getParam() { return `includeTotalCount=true`; } } Parameters.IncludeTotalCountParameter = IncludeTotalCountParameter; class SkipParameter { /** * Configures response to skip certain number of items * @constructor * @param {number} skip - Number of content items that will be skipped */ constructor(skip) { this.skip = skip; if (skip < 0) { throw Error(`'SkipParameter' must specify a positive integer number or zero."`); } } getParam() { return `skip=${this.skip}`; } } Parameters.SkipParameter = SkipParameter; class OrderParameter { /** * Sorts the response based on given element. * @constructor * @param {string} element - Element that will be used for sorting (can be both elements.<elementname> or system.<elementname>) * @param {SortOrder} sortOrder - Order type (desc/asc). Defaults to 'asc' if SortOrder is null or invalid. */ constructor(element, sortOrder) { this.element = element; this.sortOrder = sortOrder; if (!element) { throw Error(`Element specified in 'OrderParameter' is null or empty`); } } getParam() { return `order=${this.getParamValue()}`; } getParamValue() { return `${this.element.trim()}[${this.sortOrder}]`; } } Parameters.OrderParameter = OrderParameter; class CustomParameter { constructor(param) { this.param = param; } getParam() { return this.param; } } Parameters.CustomParameter = CustomParameter; class DepthParameter { /** * Configures the depth of the response. Content items might reference another 'linked items' using the Linked items element. * Recursively, these linked items can reference another linked items. * By default, only one level of linked content is returned. * @constructor * @param {number} depth - Depth fo the response */ constructor(depth) { this.depth = depth; if (depth < 0) { throw Error(`'DepthParameter' must specify a positive integer or zero`); } } getParam() { return `depth=${this.depth}`; } } Parameters.DepthParameter = DepthParameter; class LanguageParameter { /** * Specifies language version to fetch * @constructor * @param {string} languageCodename - Codename of the language */ constructor(languageCodename) { this.languageCodename = languageCodename; } getParam() { return `language=${this.languageCodename}`; } } Parameters.LanguageParameter = LanguageParameter; })(Parameters || (exports.Parameters = Parameters = {})); //# sourceMappingURL=parameters.js.map