Skip to content
This repository was archived by the owner on Jun 25, 2025. It is now read-only.

Commit 0baf225

Browse files
authored
Merge pull request #53 from apisearch-io/fix/fixed-ranges
Fixed RANGES values and improved tests
2 parents be11fdd + 0c08067 commit 0baf225

File tree

21 files changed

+1632
-1089
lines changed

21 files changed

+1632
-1089
lines changed

.circleci/config.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jobs:
44
docker:
55
- image: circleci/node:latest
66

7-
- image: docker.elastic.co/elasticsearch/elasticsearch:6.6.0
7+
- image: docker.elastic.co/elasticsearch/elasticsearch:7.6.0
88
environment:
99
ES_JAVA_OPTS: "-Xms256m -Xmx256m"
1010
discovery.type: single-node
@@ -13,8 +13,11 @@ jobs:
1313
- image: apisearchio/search-server
1414
environment:
1515
APISEARCH_GOD_TOKEN: 0e4d75ba-c640-44c1-a745-06ee51db4e93
16+
APISEARCH_ENABLED_PLUGINS: elasticsearch
17+
APISEARCH_EVENTS_EXCHANGE: events
18+
APISEARCH_TOKENS_UPDATE_EXCHANGE: tokens_update
19+
APISEARCH_ASYNC_EVENTS_ADAPTER: in_memory
1620
ELASTICSEARCH_HOST: localhost
17-
ELASTICSEARCH_PORT: 9200
1821
ELASTICSEARCH_REFRESH_ON_WRITE: 1
1922

2023
steps:
@@ -29,7 +32,7 @@ jobs:
2932
command: |
3033
sudo apt-get install wait-for-it
3134
wait-for-it localhost:9200
32-
wait-for-it localhost:8200
35+
wait-for-it localhost:8000
3336
3437
- run:
3538
name: Run test scenarios

dist/apisearch.js

Lines changed: 104 additions & 150 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/apisearch.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/apisearch.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/apisearch.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: '3'
2+
3+
services:
4+
5+
elasticsearch:
6+
image: "docker.elastic.co/elasticsearch/elasticsearch:7.6.0"
7+
networks: [apisearch]
8+
environment:
9+
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
10+
- "discovery.type=single-node"
11+
- "action.auto_create_index=-apisearch*,+*"
12+
13+
search-server:
14+
image: apisearchio/search-server:latest
15+
networks: [apisearch]
16+
ports:
17+
- 8000:8000
18+
environment:
19+
APISEARCH_GOD_TOKEN: 0e4d75ba-c640-44c1-a745-06ee51db4e93
20+
APISEARCH_ENABLED_PLUGINS: elasticsearch
21+
APISEARCH_EVENTS_EXCHANGE: events
22+
APISEARCH_TOKENS_UPDATE_EXCHANGE: tokens_update
23+
APISEARCH_ASYNC_EVENTS_ADAPTER: in_memory
24+
ELASTICSEARCH_HOST: elasticsearch
25+
ELASTICSEARCH_REFRESH_ON_WRITE: 1
26+
27+
networks:
28+
apisearch:

lib/Http/AxiosClient.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ var AxiosClient = /** @class */ (function (_super) {
6767
method: method,
6868
timeout: this.timeout,
6969
transformRequest: [function (rawData) { return JSON.stringify(rawData); }],
70-
url: url + "?" + Client_1.Client.objectToUrlParameters(tslib_1.__assign({}, parameters, {
70+
url: url + "?" + Client_1.Client.objectToUrlParameters(tslib_1.__assign(tslib_1.__assign({}, parameters), {
7171
token: credentials.token
7272
}))
7373
};

lib/Model/Item.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ var Item = /** @class */ (function () {
219219
* @returns {{}}
220220
*/
221221
Item.prototype.getAllMetadata = function () {
222-
return tslib_1.__assign({}, this.metadata, this.indexedMetadata);
222+
return tslib_1.__assign(tslib_1.__assign({}, this.metadata), this.indexedMetadata);
223223
};
224224
/**
225225
* Get

lib/Query/Query.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ var Query = /** @class */ (function () {
164164
var _a;
165165
var fieldPath = Item_1.Item.getPathByField("type");
166166
if (values.length > 0) {
167-
this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a["type"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
167+
this.universeFilters = tslib_1.__assign(tslib_1.__assign({}, this.universeFilters), (_a = {}, _a["type"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
168168
}
169169
else {
170170
delete this.universeFilters.type;
@@ -181,18 +181,18 @@ var Query = /** @class */ (function () {
181181
* @return {Query}
182182
*/
183183
Query.prototype.filterByTypes = function (values, aggregate, aggregationSort) {
184+
var _a, _b;
184185
if (aggregate === void 0) { aggregate = true; }
185186
if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }
186-
var _a, _b;
187187
var fieldPath = Item_1.Item.getPathByField("type");
188188
if (values.length > 0) {
189-
this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a["type"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
189+
this.filters = tslib_1.__assign(tslib_1.__assign({}, this.filters), (_a = {}, _a["type"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
190190
}
191191
else {
192192
delete this.filters.type;
193193
}
194194
if (aggregate) {
195-
this.aggregations = tslib_1.__assign({}, this.aggregations, (_b = {}, _b["type"] = Aggregation_1.Aggregation.create("type", fieldPath, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort), _b));
195+
this.aggregations = tslib_1.__assign(tslib_1.__assign({}, this.aggregations), (_b = {}, _b["type"] = Aggregation_1.Aggregation.create("type", fieldPath, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort), _b));
196196
}
197197
return this;
198198
};
@@ -207,7 +207,7 @@ var Query = /** @class */ (function () {
207207
var _a;
208208
var fieldPath = Item_1.Item.getPathByField("id");
209209
if (values.length > 0) {
210-
this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a["id"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
210+
this.universeFilters = tslib_1.__assign(tslib_1.__assign({}, this.universeFilters), (_a = {}, _a["id"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
211211
}
212212
else {
213213
delete this.universeFilters.id;
@@ -225,7 +225,7 @@ var Query = /** @class */ (function () {
225225
var _a;
226226
var fieldPath = Item_1.Item.getPathByField("id");
227227
if (values.length > 0) {
228-
this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a["id"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
228+
this.filters = tslib_1.__assign(tslib_1.__assign({}, this.filters), (_a = {}, _a["id"] = Filter_1.Filter.create(fieldPath, values, Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_FIELD), _a));
229229
}
230230
else {
231231
delete this.filters.id;
@@ -242,11 +242,11 @@ var Query = /** @class */ (function () {
242242
* @return {Query}
243243
*/
244244
Query.prototype.filterUniverseBy = function (field, values, applicationType) {
245-
if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }
246245
var _a;
246+
if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }
247247
var fieldPath = Item_1.Item.getPathByField(field);
248248
if (values.length > 0) {
249-
this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));
249+
this.universeFilters = tslib_1.__assign(tslib_1.__assign({}, this.universeFilters), (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));
250250
}
251251
else {
252252
delete this.universeFilters[field];
@@ -266,13 +266,13 @@ var Query = /** @class */ (function () {
266266
* @return {Query}
267267
*/
268268
Query.prototype.filterBy = function (filterName, field, values, applicationType, aggregate, aggregationSort) {
269+
var _a;
269270
if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }
270271
if (aggregate === void 0) { aggregate = true; }
271272
if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }
272-
var _a;
273273
var fieldPath = Item_1.Item.getPathByField(field);
274274
if (values.length > 0) {
275-
this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));
275+
this.filters = tslib_1.__assign(tslib_1.__assign({}, this.filters), (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, Filter_2.FILTER_TYPE_FIELD), _a));
276276
}
277277
else {
278278
delete this.filters[filterName];
@@ -293,12 +293,12 @@ var Query = /** @class */ (function () {
293293
* @return {Query}
294294
*/
295295
Query.prototype.filterUniverseByRange = function (field, values, applicationType, rangeType) {
296+
var _a;
296297
if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }
297298
if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }
298-
var _a;
299299
var fieldPath = Item_1.Item.getPathByField(field);
300300
if (values.length > 0) {
301-
this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));
301+
this.universeFilters = tslib_1.__assign(tslib_1.__assign({}, this.universeFilters), (_a = {}, _a[field] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));
302302
}
303303
else {
304304
delete this.universeFilters[field];
@@ -333,14 +333,14 @@ var Query = /** @class */ (function () {
333333
* @return {Query}
334334
*/
335335
Query.prototype.filterByRange = function (filterName, field, options, values, applicationType, rangeType, aggregate, aggregationSort) {
336+
var _a;
336337
if (applicationType === void 0) { applicationType = Filter_2.FILTER_AT_LEAST_ONE; }
337338
if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }
338339
if (aggregate === void 0) { aggregate = true; }
339340
if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }
340-
var _a;
341341
var fieldPath = Item_1.Item.getPathByField(field);
342342
if (values.length !== 0) {
343-
this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));
343+
this.filters = tslib_1.__assign(tslib_1.__assign({}, this.filters), (_a = {}, _a[filterName] = Filter_1.Filter.create(fieldPath, values, applicationType, rangeType), _a));
344344
}
345345
else {
346346
delete this.filters[filterName];
@@ -378,7 +378,7 @@ var Query = /** @class */ (function () {
378378
*/
379379
Query.prototype.filterUniverseByLocation = function (locationRange) {
380380
var _a;
381-
this.universeFilters = tslib_1.__assign({}, this.universeFilters, (_a = {}, _a["coordinate"] = Filter_1.Filter.create("coordinate", locationRange.toArray(), Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_GEO), _a));
381+
this.universeFilters = tslib_1.__assign(tslib_1.__assign({}, this.universeFilters), (_a = {}, _a["coordinate"] = Filter_1.Filter.create("coordinate", locationRange.toArray(), Filter_2.FILTER_AT_LEAST_ONE, Filter_2.FILTER_TYPE_GEO), _a));
382382
return this;
383383
};
384384
/**
@@ -429,10 +429,10 @@ var Query = /** @class */ (function () {
429429
* @return {Query}
430430
*/
431431
Query.prototype.aggregateBy = function (filterName, field, applicationType, aggregationSort, limit) {
432+
var _a;
432433
if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }
433434
if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }
434-
var _a;
435-
this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort, limit), _a));
435+
this.aggregations = tslib_1.__assign(tslib_1.__assign({}, this.aggregations), (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, Filter_2.FILTER_TYPE_FIELD, [], aggregationSort, limit), _a));
436436
return this;
437437
};
438438
/**
@@ -449,14 +449,14 @@ var Query = /** @class */ (function () {
449449
* @return {Query}
450450
*/
451451
Query.prototype.aggregateByRange = function (filterName, field, options, applicationType, rangeType, aggregationSort, limit) {
452+
var _a;
452453
if (rangeType === void 0) { rangeType = Filter_2.FILTER_TYPE_RANGE; }
453454
if (aggregationSort === void 0) { aggregationSort = Aggregation_2.AGGREGATION_SORT_BY_COUNT_DESC; }
454455
if (limit === void 0) { limit = Aggregation_2.AGGREGATION_NO_LIMIT; }
455-
var _a;
456456
if (options.length === 0) {
457457
return this;
458458
}
459-
this.aggregations = tslib_1.__assign({}, this.aggregations, (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, rangeType, options, aggregationSort, limit), _a));
459+
this.aggregations = tslib_1.__assign(tslib_1.__assign({}, this.aggregations), (_a = {}, _a[filterName] = Aggregation_1.Aggregation.create(filterName, Item_1.Item.getPathByField(field), applicationType, rangeType, options, aggregationSort, limit), _a));
460460
return this;
461461
};
462462
/**
@@ -754,12 +754,12 @@ var Query = /** @class */ (function () {
754754
* @return {Query}
755755
*/
756756
Query.prototype.excludeUUIDs = function () {
757+
var _a;
757758
var uuids = [];
758759
for (var _i = 0; _i < arguments.length; _i++) {
759760
uuids[_i] = arguments[_i];
760761
}
761-
var _a;
762-
this.filters = tslib_1.__assign({}, this.filters, (_a = {}, _a["excluded_ids"] = Filter_1.Filter.create("_id", uuids.map(function (uuid) { return uuid.composedUUID(); }), Filter_2.FILTER_EXCLUDE, Filter_2.FILTER_TYPE_FIELD), _a));
762+
this.filters = tslib_1.__assign(tslib_1.__assign({}, this.filters), (_a = {}, _a["excluded_ids"] = Filter_1.Filter.create("_id", uuids.map(function (uuid) { return uuid.composedUUID(); }), Filter_2.FILTER_EXCLUDE, Filter_2.FILTER_TYPE_FIELD), _a));
763763
return this;
764764
};
765765
/**

lib/Query/Range.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/**
22
* Aggregation constants
33
*/
4-
export declare const RANGE_ZERO = 0;
5-
export declare const RANGE_INFINITE = -1;
4+
export declare const RANGE_MINUS_INFINITE: any;
5+
export declare const RANGE_INFINITE: any;
66
export declare const RANGE_SEPARATOR = "..";
77
/**
88
* Filter class

0 commit comments

Comments
 (0)