This commit is contained in:
2024-01-09 16:28:48 -07:00
parent 875989e3a9
commit 5b1b1cdaaa
2 changed files with 59 additions and 0 deletions

31
graphql/filter.ts Normal file
View 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);
}