✨ elastic-ts
A TypeScript module for working with Elasticsearch.
Goals
- Provide TypeScript types for Elasticsearch queries
- Provide a typed query body builder with an immutable API
Non-goals
- Replace the official Elasticsearch API client
Requirements
- TypeScript 2.8 - this project uses conditional types which were introduced in TypeScript 2.8
Installation
yarn add elastic-ts
Usage
Types
import {SearchBody} from 'elastic-ts'
const body: SearchBody = {
query: {
match_all: {},
},
}
Builder
import {esBuilder} from 'elastic-ts'
const body = esBuilder()
.query('match_all', {})
.filter('terms', 'field', ['one', 'two'])
.build()
Credits
The query builder API is heavily inspired by bodybuilder, although there are subtle API and behavioral differences.
Contributing
You can build the project by running yarn build
, or can be continuously built with yarn watch
. Tests are executed by running yarn test
.
NOTE: the tests run against the built output files, so you will need to run yarn build
or yarn watch
before running yarn test
.
License
The MIT license. See LICENSE
.