npm package: @forter/elasticsearch-query-builder
Description: ElasticSearch Query Builder
Author: Forter Developers
Latest version: 1.4.2

# 🙀 Elasticsearch Query Builder
> A class for building a valid ElasticSearch query search expression, using best practices for each operators.


## 👨‍🏭 Installing
Clone from the current repo and then run the following command inside the root folder:
```sh
npm i
```


## 🧙‍♂️ CLI
`npm` are included as follows:
- `test` runs the unit test suites
- `commit` wizard for creating a commit message that will automatically add interesting stuff to changelog and have a meaning. You may also use `git cz` if you install `commitizen` globally with `npm i -g commitizen`
- `semantic-release` will be responsible for releasing the proper version to npm and add changelog.
- `watch-test` automatically re-runs your test suite when code in `src` or `test` directories change
- `full-test` runs tests, lint fix and outdated module check
- `lint` runs ESLint which find problematic patterns in code
- `fix-lint` runs ESLint with --fix flag to fix problematic patterns in code
- `prettier` runs prettier opinionated code formatter to align style of code
- `watch-fix-lint` automatically fix ESLint issues when code in `src` or `test` directories change
- `coverage` runs nyc to produce a test coverage report
- `check-outdated` runs `david` which check if package npm dependencies are out of date
- `check-vulnerabilities"` runs `nsp` which check if package npm dependencies have security issues


## 🤵 Directory Layout

```bash
. 
├── test/                       # Unit, integration and load tests
├── index.js                  # Node.js file (entery point)
├── Dockerfile                  # Commands for building a Docker image for production
├── Jenkinsfile                 # Commands for building in Jenkins CI
├── Makefile                    # Commands as described below
└── package.json                # The list of project dependencies
```


## 👨‍⚕️ Linting

[ESLint](eslint.org) comes already installed, extending [eslint-recommanded](http://rapilabs.github.io/eslintrc-generator
). Don't forget to install the appropriate [plugin for your editor](http://eslint.org/docs/user-guide/integrations).
```sh
 npm run fix-lint
```  
 
## 👨‍🔬 Testing

Mocha is a JavaScript test runner that runs both on Node.js and in the browser. It provides functionality for testing both synchronous and asynchronous code with a very simple and similar interface. To run all tests please do following:
```sh
npm test
```
 
 
## 💂 Coverage

[Istanbul](https://github.com/gotwarlost/istanbul) is used to produce a test coverage report. Look inside the `coverage` folder after running `npm run coverage` to see the results.
```sh
npm run coverage
```

## 👩‍🚀 Deploying

There is no need to deploy once your tests have passed and your branch has merged with master. However you may have to update your `package.json` to the newest version, in the repo that is using this package, depending on how your `package.json` is configured.

## 👷‍Contributing
Pull requests are welcome. For major changes, please discuss first what you would like to change and why.
Please make sure to update tests as appropriate.