UNPKG

2.46 kBTypeScriptView Raw
1import { MongoClient } from 'mongodb';
2import { Database, SeederDatabaseConfig, SeederDatabaseConfigObject } from '.';
3import { SeederDatabaseConfigObjectOptions } from './config';
4/**
5 * Provides functionality to manage connection to a MongoDB database.
6 */
7export declare class DatabaseConnector {
8 /**
9 * Default database name.
10 */
11 static DEFAULT_DB_NAME: string;
12 /**
13 * Default reconnect timeout in milliseconds.
14 */
15 static DEFAULT_RECONNECT_TIMEOUT_MILLIS: number;
16 /**
17 * Sleep interval in milliseconds.
18 */
19 static SLEEP_INTERVAL_MILLIS: number;
20 /**
21 * Masked URI credentials token.
22 */
23 static MASKED_URI_CREDENTIALS: string;
24 /**
25 * MongoDB Client.
26 */
27 client?: MongoClient;
28 /**
29 * Reconnect timeout in milliseconds.
30 */
31 reconnectTimeoutMillis: number;
32 /**
33 * Constructs the `DatabaseConnector` object.
34 *
35 * @param reconnectTimeoutMillis Reconnect timeout in milliseconds
36 */
37 constructor(reconnectTimeoutMillis?: number);
38 /**
39 * Connects to database.
40 *
41 * @param config Database configuration
42 */
43 connect(config: SeederDatabaseConfig): Promise<Database>;
44 /**
45 * Connects to database using database connection URI.
46 *
47 * @param dbConnectionUri Database connection URI
48 * @param dbName Database name
49 */
50 connectWithUri(dbConnectionUri: string, dbName: string): Promise<Database>;
51 /**
52 * Closes connection with database.
53 */
54 close(): Promise<void>;
55 /**
56 * Constructs database connection URI from database configuration object.
57 *
58 * @param param0 Database connection object
59 */
60 getDbConnectionUri({ protocol, host, port, name, username, password, options, }: SeederDatabaseConfigObject): string;
61 /**
62 * Constructs database connection options query string from database configuration object.
63 *
64 * @param options Database configuration object
65 */
66 getOptionsUriPart(options: SeederDatabaseConfigObjectOptions): string;
67 /**
68 * Detects database connection credentials and masks them, replacing with masked URI credentials token.
69 *
70 * @param uri Database connection URI
71 */
72 maskUriCredentials(uri: string): string;
73 /**
74 * Extracts database name from database connection URI.
75 *
76 * @param dbConnectionUri Database connection URI
77 */
78 getDbName(dbConnectionUri: string): string;
79}