UNPKG

syncbasestore

Version:

Lightweight reactive store with built-in filtering and async state handling

21 lines (20 loc) 643 B
export function applyFilter(data, filterDef, filterValue) { if (typeof filterDef === 'function') { return filterDef(data); } if (filterValue) { const keys = Object.keys(filterValue); const matches = (item) => keys.every(key => item[key] === filterValue[key]); if (Array.isArray(data)) { return data.filter(matches); } const filteredData = { ...data }; for (const key of keys) { if (Array.isArray(data[key])) { filteredData[key] = data[key].filter(matches); } } return filteredData; } return data; }