Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
LockModule
✓ import { LockModule } from 'nestjs-fifo-lock';
✗ const LockModule = require('nestjs-fifo-lock').LockModule;
CommonJS require works but ESM import is preferred for TypeScript projects.
UseLock
✓ import { UseLock } from 'nestjs-fifo-lock';
✗ import { UseLockDecorator } from 'nestjs-fifo-lock';
The decorated function must be async; UseLock is a method decorator.
IFifoLockOptions
✓ import { IFifoLockOptions } from 'nestjs-fifo-lock';
✗ import { LockOptions } from 'nestjs-fifo-lock';
Type import for configuration options; only available with TypeScript.
FifoLockService
✓ import { FifoLockService } from 'nestjs-fifo-lock';
✗ import { FifoLockService } from 'nestjs-fifo-lock/dist';
Direct import from package entry; no need to specify '/dist'.
Demonstrates LockModule registration with Redis connection and UseLock decorator on a service method.
// app.module.ts
import { Module } from '@nestjs/common';
import { LockModule } from 'nestjs-fifo-lock';
@Module({
imports: [
LockModule.register({
redisHost: process.env.REDIS_HOST ?? 'localhost',
redisPort: parseInt(process.env.REDIS_PORT ?? '6379'),
lockMaxTTL: 60000,
healthCheckInterval: 60000,
lockAcquireInterval: 500,
maxExtensions: 5
})
]
})
export class AppModule {}
// some.service.ts
import { Injectable } from '@nestjs/common';
import { UseLock } from 'nestjs-fifo-lock';
@Injectable()
export class SomeService {
@UseLock((args) => ({ type: 'user', tag: args.userId }))
async processUser(userId: string): Promise<void> {
// Critical section - only one instance processes this user at a time
console.log(`Processing user ${userId}`);
}
}
Errors
Common errors & fixes
Error: connect ECONNREFUSED ::1:6379
Redis server is not running or host/port incorrect.
fixStart Redis or check your RedisHost and redisPort config.
TypeError: UseLock is not a function
Incorrect import; possibly importing from wrong path or using CommonJS without proper default import.
fixUse: import { UseLock } from 'nestjs-fifo-lock'; Error: LockModule is not a NestJS module
The provided options to LockModule.register are missing required fields (redisHost, redisPort).
fixEnsure redisHost and redisPort are provided in the config object.
Error: Cannot find module 'nestjs-fifo-lock'
Package not installed or version incompatible with Node.js modules.
fixRun: npm install nestjs-fifo-lock
Audit
Dependencies
@nestjs/commonrequiredUses NestJS decorators and module system
ioredisrequiredRequired for Redis client to manage locks
uuidrequiredUsed to generate unique lock request IDs