@tmlmobilidade/interfaces
Version:
This package provides SDK-style connectors for interacting with databases (e.g., stops, plans, rides, alerts) and external providers (e.g., authentication, storage). It simplifies data access and integration across projects.
26 lines (25 loc) • 963 B
TypeScript
/**
* NOTE: TRANSACTIONS ARE ONLY SUPPORTED BY REPLICA SETS
*
* Transaction numbers are only allowed on a replica set member or mongos
*
* @see https://www.mongodb.com/docs/manual/core/transactions-operations/
*/
import { MongoConnector } from '@tmlmobilidade/mongo';
import { ClientSession } from 'mongodb';
import { MongoCollectionClass } from './mongo-collection.js';
export declare class Transaction {
private mongoConnector;
private session;
constructor(mongoConnector: MongoConnector);
abort(): Promise<void>;
commit(): Promise<void>;
getSession(): ClientSession;
start(): Promise<void>;
}
export declare class TransactionManager<T extends readonly MongoCollectionClass<any, any, any>[]> {
private collections;
private transactions;
constructor(collections: T);
withTransaction<R>(callback: (collections: T, transactions: Map<MongoCollectionClass<any, any, any>, Transaction>) => Promise<R>): Promise<R>;
}