data-filter
Version:
Data engine is small data management lib for some sort and filter.
100 lines (71 loc) • 2.09 kB
Markdown
Filter engine for array of objects.
Filter will not work with plain array.
```
npm install --save data-filter
```
```javascript
import Filter, { Sort, FilterValue } from 'data-engine';
var Filter = require('data-filter');
```
```javascript
const a = [
{
'column1': 1,
'column2': false,
'column3': 'test',
}, {
'column1': 2,
'column2': true,
'column3': 'test2',
}
]
```
Creating new Filter instance
```javascript
const filter = new Filter({ data: [] });
const filter2 = new Filter({ sortEngine: new Sort() });
```
```javascript
// Setter
filter.Data = [];
filter.setData([]);
filter.Data = undefined; // Will set data to empty array
// Getter
const originalData = sort.Data;
const filteredData = sort.FilteredData;
const filteredData = sort.getFilteredData();
```
You can add or create new filterValue, it is possible to add multiple FilterValues and once with update function.
```javascript
const filtered = filter.addFilter(name, value, type);
const filtered = filter.update(filterValue1, filterValue2, ...);
```
You can remove filter by its name or you can pass filterValue instance
```javascript
const filtered = filter.removeFilters('Name of filter', filterValue);
const filtered = filter.removeFilters('Name of filter');
```
```javascript
const filtered = filter.clearFilters();
```
```javascript
const filter = filter.getFilter('Name of filter');
```
It is possible to pass sort engine object to filter, this will always return filtered and sorted data by criteria added to filter and sort.
```javascript
filter.SortEngine = new Sort();
const sortEngine = filter.SortEngine;
// See: sort-engine
filter.SortEngine.sortBy('name')
```