Skip to content

Commit

Permalink
fix(core): fixed filters merged incorrectly causing unexpected behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
TriPSs committed May 5, 2022
1 parent 8982285 commit 588dbe5
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions packages/core/src/helpers/query.helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import merge from 'lodash.merge';
import { Paging, Query, SortDirection, SortField, SortNulls } from '../interfaces';
import { SortBuilder } from './sort.builder';
import { PageBuilder } from './page.builder';
import { transformFilter, applyFilter } from './filter.helpers';
import { transformFilter, applyFilter, mergeFilter } from './filter.helpers';

export type QueryFieldMap<From, To, T extends keyof To = keyof To> = {
[F in keyof From]?: T;
Expand Down Expand Up @@ -30,7 +30,13 @@ export const transformQuery = <From, To>(query: Query<From>, fieldMap: QueryFiel
sorting: transformSort(query.sorting, fieldMap),
});

export const mergeQuery = <T>(base: Query<T>, source: Query<T>): Query<T> => merge(base, source);
export const mergeQuery = <T>(base: Query<T>, source: Query<T>): Query<T> => {
const { filter: baseFilter = {} } = base;
const { filter: sourceFilter = {} } = source;

// eslint-disable-next-line @typescript-eslint/no-unsafe-call
return merge(base, source, { filter: mergeFilter(baseFilter, sourceFilter) }) as Query<T>;
};

export const applySort = <DTO>(dtos: DTO[], sortFields: SortField<DTO>[]): DTO[] => SortBuilder.build(sortFields)(dtos);

Expand Down

0 comments on commit 588dbe5

Please sign in to comment.