import { Observable } from 'rxjs'; import { ISearchClient } from './search-client.interface'; import * as elasticsearch from 'elasticsearch'; export class ElasticSearchClient implements ISearchClient { private client: any; public constructor( protocol: string, host: string, port: number, path: string, headers: { [key: string]: any } ) { this.client = new elasticsearch.Client({ host: { protocol, host, port, path, headers }}); } public search(searchParams: { [key: string]: any }): Observable { return Observable.fromPromise(this.client.search(searchParams)); }; }