npm package: @forter/node-orm2-elasticsearch-adapter
Description: > A driver of search expressions of ElasticSearch, to be used with a package [node-orm2](https://github.com/dresende/node-orm2).
Author: MosheZada
Latest version: 1.15.1

# 🤘 Node ORM2 Elasticsearch Adapter
> A driver of search expressions of ElasticSearch, to be used with a package [node-orm2](https://github.com/dresende/node-orm2).

## 👨‍🏭 Installing
Clone from the current repo and then run the following command inside the root folder:
```sh
npm i
```
 
## 🧙‍♂️ CLI
`npm` or `make` are included as follows:

- `test` runs the unit test suites using mocha
- `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
- `watch-fix-lint` automatically fix ESLint issues when code in `src` or `test` directories change
- `prettier` runs prettier opinionated code formatter to align style of code
- `coverage` runs nyc to produce a test coverage report
- `coverage:html` runs nyc to produce a test coverage report and generates report in html format
- `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

## 🤵 Application Structure
```bash
.
├── test/                           # Unit tests folder
├── elasticSearchAdapter.js         # Node.js file (entery point)
├── elasticSearchResultFormatter.js # Take the structure returned from ES and format it as array of objects that node-orm2 use.
├── SQLLikeQueryBuilder.js          # A implementation of the node-orm2 driver using elasticsearch expressions
├── 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.

1. Create a PR and commit using "feat: your message"
    * In case version and last tag are not synchronized, update package.json version to the current version.
2. After PR got published create another PR and update the package.json version to the most updated version number found at tags and use "chore: your message" to not publish a new lib