# @prodemmi/filterit

> FilterIt is a tool that helps you easily parse and filter query strings

Latest version **1.0.3** (published 2023-07-29) · ISC license · 0 weekly downloads

## Install

```sh
npm install @prodemmi/filterit
pnpm add @prodemmi/filterit
yarn add @prodemmi/filterit
bun add @prodemmi/filterit
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2023-07-29 |
| First published | 2023-07-29 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 2.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Emad Malekpour |
| Maintainers | prodemmi |
| Keywords | filter, query string, query, filterit |

## Links

- npm: https://www.npmjs.com/package/@prodemmi/filterit
- Repository: https://github.com/FilterItTool/filterit-ts
- Issues: https://github.com/FilterItTool/filterit-ts/issues
- npm.io page: https://npm.io/package/@prodemmi/filterit

## Dependencies (2)

- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [typescript](https://npm.io/package/typescript.md) ^5.1.6

## Alternatives

- [gamedig](https://npm.io/package/gamedig.md) — 29.3K weekly downloads
- [join-monster](https://npm.io/package/join-monster.md) — 12.8K weekly downloads
- [masked](https://npm.io/package/masked.md) — 5.5K weekly downloads
- [@comunica/actor-query-process-explain-logical](https://npm.io/package/@comunica/actor-query-process-explain-logical.md) — 4.7K weekly downloads
- [@veracity/vui](https://npm.io/package/@veracity/vui.md) — 4.6K weekly downloads

## Recent versions

- 1.0.3 (latest) — 2023-07-29
- 1.0.2 — 2023-07-29
- 1.0.0 — 2023-07-29

## README

# FilterIt
FilterIt is a tool that helps you easily parse and build query strings.

## Installation
You can install FilterItTool using npm:
```bash
npm install filterit
```

## Usage
To use FilterItTool, simply import the FilterIt class and create an instance:
```typescript
    import { FilterIt, Operator, Direction } from 'filterit';
    
    const filterIt = new FilterIt();
```

### Filtering
```typescript
    const query: string = filterIt.filterBy('id', Operator.Between, [10, 15])
            .filterBy('name', Operator.EndsWith, "Pour")
            .toQuery();

    console.log(query); // id=between:10`15&name=ends_with:Pour
```

### Sorting

```typescript
import {Direction} from "filterit";

const query: string = filterIt.sortBy('id', Direction.ASC).toQuery();

console.log(query) // sort_by=id:asc
```

### Parsing query strings
```typescript
    import { QueryParser, IParsedQuery } from 'filterit';

    const query: string = 'id=not_equal:20|id=between:10`30';
    
    console.log(QueryParser.parseQuery(query));
    // [
    //     {
    //         query: 'id=not_equal:20',
    //         isNestedQuery: false,
    //         delimiter: 'and',
    //         column: 'id',
    //         operator: 'not_equal',
    //         value: '20',
    //     },
    //     {
    //         query: 'id=between:10`30',
    //         isNestedQuery: false,
    //         delimiter: 'or',
    //         column: 'id',
    //         operator: 'between',
    //         value: [
    //             '10',
    //             '30'
    //         ],
    //     },
    // ]
```

## License
FilterItTool is released under the MIT License. See LICENSE for details.

---
_Source: https://npm.io/package/@prodemmi/filterit · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
