UNPKG

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