@push.rocks/smartdata
Version:
An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.
37 lines (36 loc) • 1.44 kB
TypeScript
import * as plugins from './plugins.js';
import { SmartdataCollection } from './classes.collection.js';
import { EasyStore } from './classes.easystore.js';
/**
* interface - indicates the connection status of the db
*/
export type TConnectionStatus = 'initial' | 'disconnected' | 'connected' | 'failed';
export declare class SmartdataDb {
smartdataOptions: plugins.tsclass.database.IMongoDescriptor;
mongoDbClient: plugins.mongodb.MongoClient;
mongoDb: plugins.mongodb.Db;
status: TConnectionStatus;
statusConnectedDeferred: plugins.smartpromise.Deferred<void>;
smartdataCollectionMap: plugins.lik.ObjectMap<SmartdataCollection<any>>;
constructor(smartdataOptions: plugins.tsclass.database.IMongoDescriptor);
createEasyStore<T = unknown>(nameIdArg: string): Promise<EasyStore<T>>;
/**
* connects to the database that was specified during instance creation
*/
init(): Promise<any>;
/**
* closes the connection to the databse
*/
close(): Promise<any>;
/**
* Start a MongoDB client session for transactions
*/
startSession(): plugins.mongodb.ClientSession;
addCollection(SmartdataCollectionArg: SmartdataCollection<any>): void;
/**
* Gets a collection's name and returns a SmartdataCollection instance
* @param nameArg
* @returns DbTable
*/
getSmartdataCollectionByName<T>(nameArg: string): Promise<SmartdataCollection<T>>;
}