UNPKG

alepha

Version:

Easy-to-use modern TypeScript framework for building many kind of applications.

47 lines (46 loc) 1.33 kB
import { $inject, $module } from "alepha"; import { AlephaLock, LockProvider, LockTopicProvider } from "alepha/lock"; import { RedisTopicProvider } from "alepha/topic/redis"; import { $logger } from "alepha/logger"; import { RedisProvider } from "alepha/redis"; //#region ../../src/lock/redis/providers/RedisLockProvider.ts var RedisLockProvider = class { log = $logger(); redisProvider = $inject(RedisProvider); async set(key, value, nx, px) { const options = { GET: true }; if (px) options.expiration = { type: "PX", value: px }; if (nx) options.condition = "NX"; return (await this.redisProvider.set(key, value, options)).toString("utf-8"); } async del(...keys) { await this.redisProvider.del(keys); } }; //#endregion //#region ../../src/lock/redis/index.ts /** * Plugin for Alepha that provides a locking mechanism. * * @see {@link RedisLockProvider} * @module alepha.lock.redis */ const AlephaLockRedis = $module({ name: "alepha.lock.redis", services: [RedisLockProvider, RedisTopicProvider], register: (alepha) => alepha.with({ optional: true, provide: LockTopicProvider, use: RedisTopicProvider }).with({ optional: true, provide: LockProvider, use: RedisLockProvider }).with(AlephaLock) }); //#endregion export { AlephaLockRedis, RedisLockProvider }; //# sourceMappingURL=index.js.map