@biorate/opensearch
v2.1.3
Published
OpenSearch OOP static interface
Readme
@biorate/opensearch
OpenSearch connector — connection manager for the official @opensearch-project/opensearch client.
Features
- Auto-connect — creates OpenSearch
Clienton@init()via config namespaceOpenSearch. - Connection verification — calls
ping()to verify server reachability. - Full OpenSearch API — indices, documents, search, aggregations via the client.
- Typed errors —
OpenSearchCantConnectErroron connection failure.
Installation
pnpm add @biorate/opensearchRequires @biorate/connector, @biorate/inversion, @biorate/config, @opensearch-project/opensearch.
Quick start
import { inject, container, Types, Core } from '@biorate/inversion';
import { IConfig, Config } from '@biorate/config';
import { OpenSearchConnector } from '@biorate/opensearch';
class Root extends Core() {
@inject(OpenSearchConnector) public connector: OpenSearchConnector;
}
container.bind<IConfig>(Types.Config).to(Config).inSingletonScope();
container.bind<OpenSearchConnector>(OpenSearchConnector).toSelf().inSingletonScope();
container.bind<Root>(Root).toSelf().inSingletonScope();
container.get<IConfig>(Types.Config).merge({
OpenSearch: [{
name: 'dev',
options: {
node: 'https://admin:admin_pass@localhost:9200',
ssl: { rejectUnauthorized: false },
},
}],
});
(async () => {
const root = container.get<Root>(Root);
await root.$run();
await root.connector.current!.indices.create({
index: 'test_index',
body: {
settings: { index: { number_of_shards: 1, number_of_replicas: 1 } },
},
});
})();API Reference
OpenSearchConnector
| Member | Type | Description |
|------------------|---------------------------------------------|------------------------------------------|
| namespace | 'OpenSearch' | Config key for connection definitions. |
| connect(config) | (config) => Promise<IOpenSearchConnection> | Creates Client and calls ping(). |
Config
interface IOpenSearchConfig extends IConnectorConfig {
options: ClientOptions; // node, ssl, auth, etc.
}Errors
| Error | Condition |
|--------------------------------|----------------------------------------------|
| OpenSearchCantConnectError | new Client() or ping() fails. |
Architecture
OpenSearchConnector extends Connector<IOpenSearchConfig, IOpenSearchConnection>
│
├── namespace = 'OpenSearch'
├── connect(config) → new Client(config.options)
│ └── await connection.ping() // verify
└── connection is an @opensearch-project/opensearch ClientLearn
- Documentation can be found here - docs.
Release History
See the CHANGELOG
