Commons for NestJS
- Lodash - lodash (v4.17.21)
npm install --save @crowdlinker/nestjs-commons // or // yarn add @crowdlinker/nestjs-commonsimport dayjs from 'dayjs'; import { DATE_FORMAT } from '@crowdlinker/nestjs-commons/constants/date'; new days().format(DATE_FORMAT); // 2021-05-21Helpers 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)