chen-elasticsearch
Version:
ElasticSearch Provider for Chen Framework
92 lines (91 loc) • 2.65 kB
TypeScript
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>;
}