alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
47 lines (46 loc) • 1.33 kB
JavaScript
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