@getlarge/nestjs-tools-lock
Version:
A distributed lock manager for NestJS
54 lines • 1.89 kB
JavaScript
;
var LockModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LockModule = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@nestjs/common");
const constants_1 = require("./constants");
const lock_service_1 = require("./lock.service");
function getAsyncProviders(options) {
const { inject = [], useFactory, useClass } = options;
if (useFactory && useClass) {
throw new Error('Invalid configuration, useFactory and useClass should not be defined at the same time');
}
if (useFactory) {
return [{ provide: constants_1.LOCK_SERVICE_OPTIONS, useFactory, inject }, lock_service_1.LockService];
}
if (useClass) {
return [{ provide: constants_1.LOCK_SERVICE_OPTIONS, useClass }, lock_service_1.LockService];
}
throw new Error('Invalid configuration, useFactory or useClass should be defined');
}
let LockModule = LockModule_1 = class LockModule {
static forRoot(options, isGlobal = false) {
const providers = [
{
provide: constants_1.LOCK_SERVICE_OPTIONS,
useValue: options,
},
lock_service_1.LockService,
];
return {
global: isGlobal,
module: LockModule_1,
providers,
exports: providers,
};
}
static forRootAsync(options, isGlobal = false) {
const { imports = [] } = options;
const providers = getAsyncProviders(options);
return {
global: isGlobal,
module: LockModule_1,
imports,
providers,
exports: [lock_service_1.LockService],
};
}
};
exports.LockModule = LockModule;
exports.LockModule = LockModule = LockModule_1 = tslib_1.__decorate([
(0, common_1.Module)({})
], LockModule);
//# sourceMappingURL=lock.module.js.map