Skip to content

Commit 0277d1d

Browse files
committed
Remove undefined from object before sending search
1 parent 4f99712 commit 0277d1d

File tree

4 files changed

+14
-15
lines changed

4 files changed

+14
-15
lines changed

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import MeiliSearchError from './errors/meilisearch-error'
1111
import MeiliSearchTimeOutError from './errors/meilisearch-timeout-error'
1212
import MeiliAxiosWrapper from './meili-axios-wrapper'
1313
import * as Types from './types'
14-
import { sleep } from './utils'
14+
import { sleep, removeUndefinedFromObject } from './utils'
1515

1616
class Index<T> extends MeiliAxiosWrapper implements Types.IndexInterface<T> {
1717
uid: string
@@ -93,7 +93,7 @@ class Index<T> extends MeiliAxiosWrapper implements Types.IndexInterface<T> {
9393
attributesToHighlight: options?.attributesToHighlight,
9494
}
9595
if (method.toUpperCase() === 'POST') {
96-
return await this.post(url, params, {
96+
return await this.post(url, removeUndefinedFromObject(params), {
9797
cancelToken: this.cancelTokenSource.token,
9898
})
9999
} else if (method.toUpperCase() === 'GET') {
@@ -118,7 +118,7 @@ class Index<T> extends MeiliAxiosWrapper implements Types.IndexInterface<T> {
118118
}
119119

120120
return await this.get(url, {
121-
params: getParams,
121+
params: removeUndefinedFromObject(getParams),
122122
cancelToken: this.cancelTokenSource.token,
123123
})
124124
} else {

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export interface SearchRequest {
7676
attributesToRetrieve?: string[]
7777
attributesToCrop?: string[]
7878
attributesToHighlight?: string[]
79-
facetFilters?: string | FacetFilter | FacetFilter[]
79+
facetFilters?: FacetFilter | FacetFilter[]
8080
facetsDistribution?: string[]
8181
filters?: string
8282
matches?: boolean

src/utils.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1+
function removeUndefinedFromObject(object: Record<string, any>): object {
2+
return Object.keys(object).reduce((acc: Record<string, any>, key: string) => {
3+
if (object[key] !== undefined) {
4+
acc[key] = object[key]
5+
}
6+
return acc
7+
}, {})
8+
}
9+
110
async function sleep(ms: number): Promise<void> {
211
return await new Promise((resolve) => setTimeout(resolve, ms))
312
}
413

5-
export { sleep }
14+
export { sleep, removeUndefinedFromObject }

tests/search_tests.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -351,16 +351,6 @@ describe.each([
351351
})
352352
})
353353

354-
test(`${permission} key: Try to Search with one string facetFilters and fail`, async () => {
355-
await expect(
356-
client.getIndex(index.uid).search('a', {
357-
facetFilters: 'genre:romance',
358-
})
359-
).rejects.toThrowError(
360-
`error processing facet filter: unexpected token "genre:romance", expected Array`
361-
)
362-
})
363-
364354
test(`${permission} key: Try to Search on deleted index and fail`, async () => {
365355
await masterClient.getIndex(index.uid).deleteIndex()
366356
await expect(

0 commit comments

Comments
 (0)