@transactional/core
Version:
"@transactional/core" is an npm package that offers the core implementation of "@Transactional" method decorator for running your queries inside a transaction seamlessly. It achieves this by leveraging AsyncLocalStorage.
20 lines (19 loc) • 841 B
TypeScript
/// <reference types="node" />
import { AsyncLocalStorage } from "async_hooks";
export interface TransactionalContext<O = any> {
$commit?: () => Promise<void>;
$rollback?: () => Promise<void>;
[key: string]: any;
options?: O;
}
export declare const TRANSACTIONAL_CONTEXT: AsyncLocalStorage<TransactionalContext<any> | null>;
export declare enum Propagation {
MANDATORY = 0,
NEVER = 1,
NOT_SUPPORTED = 2,
REQUIRED = 3,
REQUIRES_NEW = 4,
SUPPORTS = 5
}
export declare const Transactional: <O = any>(propagation?: Propagation, options?: O | undefined) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare const transactional: <O extends unknown, T extends (...args: any) => Promise<any> = any>(method: T, propagation?: Propagation, options?: O | undefined) => T;