@21jumpclick/nestjs-tools
v1.0.1
Published
NestJS tools library with logging and other utilities
Readme
@21jumpclick/nestjs-tools
Bibliothèque d'outils NestJS pour les projets 21JumpClick, avec un focus sur le logging et les utilitaires RMQ.
Installation
npm install @21jumpclick/nestjs-toolsUtilisation
Logging Module
Le module de logging fournit des fonctionnalités de logging avancées avec Pino et des utilitaires pour RabbitMQ.
import { Module } from '@nestjs/common';
import { LoggingModule } from '@21jumpclick/nestjs-tools';
@Module({
imports: [
LoggingModule, // Module global - automatiquement disponible partout
],
})
export class AppModule {}Logging Service
Utilisez le service de logging pour enregistrer les messages RMQ et créer des clients avec logging intégré.
import { Injectable } from '@nestjs/common';
import { LoggingService } from '@21jumpclick/nestjs-tools';
@Injectable()
export class MyService {
constructor(private readonly loggingService: LoggingService) {}
async someMethod() {
// Logger un message RMQ entrant
this.loggingService.logRmqMessage('pattern.name', { data: 'example' });
// Logger un message RMQ sortant
this.loggingService.logRmqOutgoing('pattern.name', { data: 'example' }, {
durationMs: 150,
status: 'sent'
});
}
}RMQ Module
Module simplifié pour la configuration des clients RabbitMQ.
import { Module } from '@nestjs/common';
import { RmqModule } from '@21jumpclick/nestjs-tools';
@Module({
imports: [
RmqModule.register({
name: 'MY_SERVICE',
urls: ['amqp://localhost:5672'],
queue: 'my_queue',
isGlobal: true,
}),
],
})
export class AppModule {}Configuration RMQ Avancée
import { Module } from '@nestjs/common';
import { RmqModule } from '@21jumpclick/nestjs-tools';
@Module({
imports: [
RmqModule.registerAsync({
name: 'MY_SERVICE',
useFactory: (configService: ConfigService) => ({
urls: configService.get('RMQ_URLS'),
queue: configService.get('MY_QUEUE'),
queueOptions: {
durable: true,
},
prefetchCount: 20,
}),
inject: [ConfigService],
}),
],
})
export class AppModule {}Interceptors
Interceptors pour le logging automatique des requêtes HTTP et messages RMQ.
import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
import { LoggingInterceptor } from '@21jumpclick/nestjs-tools';
@Module({
providers: [
{
provide: APP_INTERCEPTOR,
useClass: LoggingInterceptor,
},
],
})
export class AppModule {}Features
- Logging structuré avec Pino
- Support RMQ avec logging automatique
- Masquage des données sensibles (passwords, tokens, etc.)
- Configuration flexible pour différents environnements
- Interceptors pour le logging automatique
- Types TypeScript complets
Configuration
Le module de logging utilise les variables d'environnement suivantes :
NODE_ENV: Détermine si le logging est en mode production ou développementAPP_NAME: Nom de l'application pour les headers RMQ
License
UNLICENSED
