Skip to content

Commit 49d12fb

Browse files
feat: or operator implementation in query
1 parent 4b8a6ee commit 49d12fb

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/lib/content-type.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { AxiosInstance, getData } from '@contentstack/core';
22
import { Entry } from './entry';
33
import { Entries } from './entries';
4-
import { Query } from './query';
54

65
interface ContentTypeResponse<T> {
76
content_type: T;

src/lib/query.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { BaseQuery } from './base-query';
33
import { BaseQueryParameters, QueryOperation, QueryOperator, TaxonomyQueryOperation } from './types';
44
export class Query extends BaseQuery {
55
private _contentTypeUid?: string;
6+
private _subQueries: Query[] = [];
7+
68

79
constructor(client: AxiosInstance, uid: string, queryObj?: { [key: string]: any }) {
810
super();
@@ -218,4 +220,15 @@ export class Query extends BaseQuery {
218220
this._parameters[key] = { '$exists': false };
219221
return this;
220222
}
223+
224+
or(...queries: Query[]): Query {
225+
const combinedQuery: any = { $or: [] };
226+
for (const query of queries) {
227+
combinedQuery.$or.push(query._parameters);
228+
}
229+
const newQuery: Query = Object.create(this);
230+
newQuery._parameters = combinedQuery;
231+
232+
return newQuery;
233+
}
221234
}

0 commit comments

Comments
 (0)