@chevre/domain
Version:
Chevre Domain Library for Node.js
28 lines (27 loc) • 734 B
TypeScript
import type { RedisClientType } from 'redis';
import * as factory from '../factory';
interface IProcessKey {
typeOf: factory.transactionType;
/**
* 取引ID
*/
id: string;
project: {
id: string;
};
}
interface IOptions {
lockExpiresInSeconds: number;
}
/**
* 取引プロセスリポジトリ
*/
export declare class TransactionProcessRepo {
private readonly concurrentLockRepo;
private readonly options;
constructor(redisClient: RedisClientType, options: IOptions);
static CREATE_REDIS_KEY(params: Pick<IProcessKey, 'id' | 'typeOf'>): string;
lock(params: IProcessKey): Promise<void>;
unlock(params: Pick<IProcessKey, 'id' | 'typeOf'>): Promise<void>;
}
export {};