Commons for NestJS
- Lodash - lodash (v4.17.21)
npm install --save @crowdlinker/nestjs-commons
// or
// yarn add @crowdlinker/nestjs-commons
import dayjs from 'dayjs';
import { DATE_FORMAT } from '@crowdlinker/nestjs-commons/constants/date';
new days().format(DATE_FORMAT); // 2021-05-21
Helpers are common functions used throughout the codebase for performing some basic operations.
import { isLeapYear } from '@crowdlinker/nestjs-commons/helpers/date';
if (isLeapYear()) {
// const noOfDays = 366;
} else {
// const noOfDays = 365;
}
To know about what an HttpExceptionFilter is, please read the NestJS documentation.
import { Module } from '@nestjs/common';
import { APP_FILTER } from '@nestjs/core';
import { AppService } from './app.service';
import { AppController } from './app.controller';
import { AppConfigService } from './config/app/config.service';
import { HttpExceptionFilter } from '@crowdlinker/nestjs-commons/exceptions/filters/http-exception';
@Module({
imports: [
// ...
],
controllers: [AppController],
providers: [
AppService,
{
provide: APP_FILTER,
useFactory: async (appConfigService: AppConfigService) => {
return new HttpExceptionFilter(appConfigService);
},
},
],
})
export class AppModule {}
Note: AppConfigService should implement AppConfigServiceInterface provided in `@crowdlinker/nestjs-commons/interfaces/config.interface. See example below:
import { Injectable } from '@nestjs/common';
import { AppConfig } from './config.interface';
import { ConfigService } from '@nestjs/config';
import { AppConfigServiceInterface } from '@crowdlinker/nestjs-commons/interfaces/config';
@Injectable()
export class AppConfigService implements AppConfigServiceInterface {
// ....
}
- Code is written in Typescript (v5.4.3)