monguito
Version:
MongoDB Abstract Repository implementation for Node.js
24 lines (23 loc) • 959 B
TypeScript
import { ClientSession, Connection } from 'mongoose';
/**
* Models a callback function that writes to and reads from the database using a session.
*/
type DbCallback<T> = (session: ClientSession) => Promise<T>;
/**
* Specifies transaction options.
* @property {ClientSession} session (optional) - a transaction session, required to run the operation within an existing transaction.
*/
export type TransactionOptions = {
session?: ClientSession;
};
/**
* Runs the provided callback function within a transaction and commits the changes to the database
* iff it has run successfully.
*
* @param {DbCallback<T>} callback a callback function that writes to and reads from the database using a session.
* @param {TransactionOptions} options (optional) some options about the transaction.
*/
export declare function runInTransaction<T>(callback: DbCallback<T>, options?: TransactionOptions & {
connection?: Connection;
}): Promise<T>;
export {};