UNPKG

apisearch

Version:
151 lines (150 loc) 4.54 kB
"use strict"; exports.__esModule = true; var tslib_1 = require("tslib"); var AxiosClient_1 = require("./Http/AxiosClient"); var Query_1 = require("./Query/Query"); var Query_2 = require("./Query/Query"); var Query_3 = require("./Query/Query"); var SortBy_1 = require("./Query/SortBy"); var HttpRepository_1 = require("./Repository/HttpRepository"); var Result_1 = require("./Result/Result"); var ResultAggregations_1 = require("./Result/ResultAggregations"); var Transformer_1 = require("./Transformer/Transformer"); var CacheClient_1 = require("./Http/CacheClient"); /** * Apisearch class */ var Apisearch = /** @class */ (function () { function Apisearch() { } /** * Constructor * * @param config * * @return {HttpRepository} */ Apisearch.createRepository = function (config) { Apisearch.ensureRepositoryConfigIsValid(config); config.options = tslib_1.__assign({ api_version: "v1", override_queries: true, timeout: 3000 }, config.options); /** * Client */ var httpClient = typeof config.options.http_client !== "undefined" ? config.options.http_client : new AxiosClient_1.AxiosClient(config.options.endpoint, config.options.api_version, config.options.timeout, config.options.override_queries); if (config.options.use_cache) { httpClient = new CacheClient_1.CacheClient(httpClient); } return new HttpRepository_1.HttpRepository(httpClient, config.app_id, config.index_id, config.token, new Transformer_1.Transformer()); }; /** * Ensure the Repository configuration is valid * * @param config */ Apisearch.ensureRepositoryConfigIsValid = function (config) { Apisearch.ensureIsDefined(config.app_id, "app_id"); Apisearch.ensureIsDefined(config.index_id, "index_id"); Apisearch.ensureIsDefined(config.token, "token"); Apisearch.ensureIsDefined(config.options.endpoint, "options.endpoint"); }; /** * Ensure the value is not undefined * * @param param * @param name */ Apisearch.ensureIsDefined = function (param, name) { if (typeof param === "undefined") { throw new TypeError(name + " parameter must be defined."); } }; /** * Created located * * @param coordinate * @param queryText * @param page * @param size * * @returns {Query} */ Apisearch.createQueryLocated = function (coordinate, queryText, page, size) { if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; } if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; } return Query_3.Query.createLocated(coordinate, queryText, page, size); }; /** * Create * * @param queryText * @param page * @param size * * @returns {Query} */ Apisearch.createQuery = function (queryText, page, size) { if (page === void 0) { page = Query_1.QUERY_DEFAULT_PAGE; } if (size === void 0) { size = Query_2.QUERY_DEFAULT_SIZE; } return Query_3.Query.create(queryText, page, size); }; /** * Create match all * * @return {Query} */ Apisearch.createQueryMatchAll = function () { return Query_3.Query.createMatchAll(); }; /** * Create by UUID * * @param uuid * * @return {Query} */ Apisearch.createQueryByUUID = function (uuid) { return Query_3.Query.createByUUID(uuid); }; /** * Create by UUIDs * * @param uuids * * @return {Query} */ Apisearch.createQueryByUUIDs = function () { var uuids = []; for (var _i = 0; _i < arguments.length; _i++) { uuids[_i] = arguments[_i]; } return Query_3.Query.createByUUIDs.apply(Query_3.Query, uuids); }; /** * Create empty result * * @return {Result} */ Apisearch.createEmptyResult = function () { return Result_1.Result.create("", 0, 0, new ResultAggregations_1.ResultAggregations(0), [], []); }; /** * Create empty sortby * * @return {SortBy} */ Apisearch.createEmptySortBy = function () { return SortBy_1.SortBy.create(); }; /** * Create empty sortby * * @return {SortBy} */ Apisearch.createEmptyScoreStrategy = function () { return SortBy_1.SortBy.create(); }; return Apisearch; }()); exports["default"] = Apisearch;