Skip to content

Commit 2cce9d4

Browse files
committed
Add params support to FindOptions
1 parent 2923f9d commit 2cce9d4

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

src/DataStore.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export interface FindOptions {
3535
sort?: FindSort[];
3636
sync?: boolean;
3737
group?: Group[];
38+
params?: Record<string, any>;
3839
}
3940

4041
export interface DataStoreOptions {

src/transformers/OrionFindTransformer.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { isEmpty, isNil, omitBy, remove } from 'lodash';
1+
import { isEmpty, isNil, List, omitBy, remove } from 'lodash';
22
import { Transformer } from './Transformer';
33
import { FindOptions } from '../DataStore';
44

@@ -104,11 +104,13 @@ export class OrionFindTransformer implements Transformer<FindOptions> {
104104

105105
const paginate = data.limit && !isNil(data.skip);
106106
const page = paginate ? Math.ceil(data.skip / data.limit) : 0;
107+
const filter = (data.filter || []) as List<any>;
107108

108-
const [withTrashed] = remove(data.filter, (filter) => filter[0] === 'with_trashed');
109-
const [onlyTrashed] = remove(data.filter, (filter) => filter[0] === 'only_trashed');
109+
const [withTrashed] = remove(filter, (filter: any) => filter[0] === 'with_trashed');
110+
const [onlyTrashed] = remove(filter, (filter: any) => filter[0] === 'only_trashed');
110111

111112
const params: any = {
113+
...data.params,
112114
[this.paramNames.limit]: data.limit,
113115
[this.paramNames.page]: paginate ? page + 1 : null,
114116
with_trashed: withTrashed ? withTrashed[2] === true : null,

tests/transformers/OrionFindTransformer.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,14 @@ describe('Orion - FindTransformer', () => {
3535
scopes: {
3636
whereCategory: [1],
3737
},
38+
params: {
39+
pagination: 0,
40+
},
3841
});
3942

4043
expect(result.method).toEqual('POST');
4144
expect(result.action).toEqual('search');
42-
expect(result.params).toEqual({ limit: 5, page: 3, with_trashed: true });
45+
expect(result.params).toEqual({ limit: 5, page: 3, with_trashed: true, pagination: 0 });
4346
expect(result.data).toEqual({
4447
filters: [
4548
{ field: 'active', operator: '=', value: true },

0 commit comments

Comments
 (0)