UNPKG

@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
/** * 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>; }