UNPKG

chen-elasticsearch

Version:
92 lines (91 loc) 2.65 kB
import { Provider, Application } from 'chen/core'; import { Client, ConfigOptions } from 'elasticsearch'; /** * ElasticSearchConfig interface */ export interface ElasticSearchConfig extends ConfigOptions { } /** * ElasticSearchConnectionFactoryConfig interface */ export interface ElasticSearchConnectionFactoryConfig { default: string; connections: { [name: string]: ElasticSearchConfig; }; } /** * ElasticSearchClient class */ export declare class ElasticSearchClient extends Client { private name; private config; /** * ElasticSearchClient constructor * @param {string} private name * @param {SQLConfig} private config */ constructor(name: string, config: ElasticSearchConfig); } /** * ElasticSearchConnectionFactory class */ export declare class ElasticSearchConnectionFactory { private config; /** * singleton global instance * @type {ElasticSearchConnectionFactory} */ private static globalInstance; /** * Created connections by the factory instance * @type {Map<string, ElasticSearchClient>} */ private connections; /** * ElasticSearchConnectionFactory constructor * @param {ElasticSearchConnectionFactoryConfig} private config */ constructor(config: ElasticSearchConnectionFactoryConfig); /** * Get single instance * @param {ElasticSearchConnectionFactoryConfig} config * @return {ElasticSearchConnectionFactory} */ static getGlobalInstance(): ElasticSearchConnectionFactory; /** * Create global instance * @param {ElasticSearchConnectionFactoryConfig} config */ static createGlobalInstance(config: ElasticSearchConnectionFactoryConfig): void; /** * Get connection credentials * @param {string} name * @return {ElasticSearchConfig} */ getCredentials(name: string): ElasticSearchConfig; /** * Create connection then cache the connection to a Map object * the next time getConnection is called with the same parameter used * it will return the previously created connection. * @param {string} name * @return {ElasticSearchClient} */ getConnection(name?: string): ElasticSearchClient; /** * Always get a new connection * @param {string} name * @return {ElasticSearchClient} */ getNewConnection(name: string): ElasticSearchClient; } /** * ElasticSearchProvider class */ export declare class ElasticSearchProvider extends Provider { /** * Create connection * @param {Application} app */ register(app: Application): Promise<void>; }