neogm
Version:
TypeScript-first Neo4j Object Graph Mapper (OGM) for building type-safe graph database applications
78 lines • 2.42 kB
TypeScript
/**
* Connection configuration types and interfaces for Neo4j connections
*/
import { Config as Neo4jConfig } from 'neo4j-driver';
/**
* Authentication configuration for Neo4j
*/
export interface AuthConfig {
/** Username for authentication */
username: string;
/** Password for authentication */
password: string;
/** Optional realm for authentication */
realm?: string;
}
/**
* Connection pool configuration
*/
export interface ConnectionPoolConfig {
/** Maximum number of connections in the pool */
maxSize?: number;
/** Maximum amount of time to keep an idle connection in the pool (ms) */
maxConnectionLifetime?: number;
/** Maximum amount of time to wait for a connection before timing out (ms) */
connectionAcquisitionTimeout?: number;
}
/**
* Database specific configuration
*/
export interface DatabaseConfig {
/** The name of the database to connect to */
name: string;
/** The URI of the database */
uri: string;
/** Authentication configuration */
auth?: AuthConfig;
/** Connection pool configuration */
pool?: ConnectionPoolConfig;
/** Additional Neo4j driver configuration */
driverConfig?: Neo4jConfig;
}
/**
* Multi-database configuration
*/
export interface MultiDatabaseConfig {
/** The default database to use when no specific database is specified */
default: string;
/** Map of database names to their configurations */
databases: Record<string, DatabaseConfig>;
}
/**
* Single connection string configuration
*/
export type ConnectionStringConfig = string;
/**
* Single database connection configuration
*/
export interface SingleDatabaseConfig {
/** The URI of the database */
uri: string;
/** Authentication configuration */
auth?: AuthConfig;
/** Connection pool configuration */
pool?: ConnectionPoolConfig;
/** Additional Neo4j driver configuration */
driverConfig?: Neo4jConfig;
}
/**
* Union type for all possible connection configurations
*/
export type ConnectionConfig = ConnectionStringConfig | SingleDatabaseConfig | MultiDatabaseConfig;
/**
* Resolves a connection config to a normalized format
* @param config The connection configuration to normalize
* @returns Normalized configuration
*/
export declare function normalizeConfig(config: ConnectionConfig): MultiDatabaseConfig;
//# sourceMappingURL=connection-config.d.ts.map