apisearch
Version:
Javascript client for Apisearch.
151 lines (150 loc) • 4.54 kB
JavaScript
;
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;