UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

23 lines (21 loc) 758 B
import { generateJoi } from "@directus/utils"; //#region src/utils/filter-items.ts function filterItems(items, filter) { if (!filter) return items; return items.filter((item) => passesFilter(item, filter)); function passesFilter(item, filter$1) { if (!filter$1 || Object.keys(filter$1).length === 0) return true; if (Object.keys(filter$1)[0] === "_and") return Object.values(filter$1)[0].every((subFilter) => { return passesFilter(item, subFilter); }); else if (Object.keys(filter$1)[0] === "_or") return Object.values(filter$1)[0].some((subFilter) => { return passesFilter(item, subFilter); }); else { const { error } = generateJoi(filter$1).validate(item); return error === void 0; } } } //#endregion export { filterItems };