WIP
This commit is contained in:
31
graphql/filter.ts
Normal file
31
graphql/filter.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
type BaseFilter = {
|
||||
createVars: () => { [key: string]: any };
|
||||
};
|
||||
|
||||
function createBaseFilter(key: string, content: any): BaseFilter {
|
||||
return {
|
||||
createVars: () => ({ [key]: content }),
|
||||
};
|
||||
}
|
||||
|
||||
export function createAndFilter(filters: Array<BaseFilter>): BaseFilter {
|
||||
const filterVars = filters.map((filter) => filter.createVars());
|
||||
return createBaseFilter("andFilters", { filters: filterVars });
|
||||
}
|
||||
|
||||
export function createCategoryFilter(
|
||||
feature: string,
|
||||
value: string,
|
||||
): BaseFilter {
|
||||
const content = { [feature]: { value } };
|
||||
return createBaseFilter(feature, content);
|
||||
}
|
||||
|
||||
export function createRangeFilter(
|
||||
feature: string,
|
||||
greaterThanEqualTo: number,
|
||||
lessThan: number,
|
||||
): BaseFilter {
|
||||
const content = { greaterThanEqualTo, lessThan };
|
||||
return createBaseFilter(feature, content);
|
||||
}
|
Reference in New Issue
Block a user