@alepha/lock-redis
Version:
Redis implementation for the distributed locking mechanism.
35 lines (30 loc) • 1.06 kB
text/typescript
import { $module, type Alepha } from "@alepha/core";
import { AlephaLock, LockProvider, LockTopicProvider } from "@alepha/lock";
import { RedisTopicProvider } from "@alepha/topic-redis";
import { RedisLockProvider } from "./providers/RedisLockProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
export * from "./providers/RedisLockProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
/**
* Plugin for Alepha that provides a locking mechanism.
*
* @see {@link RedisLockProvider}
* @module alepha.lock.redis
*/
export const AlephaLockRedis = $module({
name: "alepha.lock.redis",
services: [RedisLockProvider, RedisTopicProvider],
register: (alepha: Alepha) =>
alepha
.with({
optional: true,
provide: LockTopicProvider,
use: RedisTopicProvider,
})
.with({
optional: true,
provide: LockProvider,
use: RedisLockProvider,
})
.with(AlephaLock),
});