Code Explainers
NestJS code explainers
typescript
import { WebSocketGateway, WebSocketServer, SubscribeMessage,
Building a real-time chat gateway in NestJS
websockets
real-time
socket.io
Intermediate
8 steps
typescript
import { IsInt, IsOptional, Max, Min } from 'class-validator'; import { Type } from 'class-transformer'; export class PaginationQueryDto {
Type-safe pagination queries in NestJS
pagination
validation
dto
Intermediate
7 steps
typescript
import { Injectable, NestInterceptor, ExecutionContext,
A per-route timeout interceptor in NestJS
interceptors
metadata reflection
rxjs
Intermediate
8 steps
typescript
import { Controller, Get, Param, Post, Body, Version, VERSION_NEUTRAL } from '@nestjs/common'; import { UsersService } from './users.service'; import { CreateUserDto } from './dto/create-user.dto';
How API versioning works in NestJS
api-versioning
routing
dependency-injection
Intermediate
9 steps
typescript
import { HttpService } from '@nestjs/axios'; import { Injectable, Logger, ServiceUnavailableException } from '@nestjs/common'; import { AxiosError } from 'axios'; import { catchError, firstValueFrom, retry, timer } from 'rxjs';
Resilient payment retries in NestJS
retry
exponential-backoff
rxjs
Advanced
8 steps
typescript
import { Injectable, NotFoundException } from '@nestjs/common'; import { EventEmitter2, OnEvent } from '@nestjs/event-emitter'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm';
Decoupling side effects with NestJS events
event-driven
decoupling
dependency-injection
Intermediate
7 steps
typescript
import { Controller, Get, Param, StreamableFile, Res, NotFoundException, Header } from '@nestjs/common'; import { Response } from 'express'; import { createReadStream, promises as fsp } from 'fs'; import { join } from 'path';
Streaming CSV file downloads in NestJS
file-streaming
http-headers
error-handling
Intermediate
7 steps
typescript
import { Controller, Get } from '@nestjs/common'; import { HealthCheck, HealthCheckService,
Liveness vs readiness probes in NestJS
health-checks
dependency-injection
observability
Intermediate
6 steps
typescript
import { Controller, Post, Headers,
Verifying Stripe webhooks in NestJS
webhooks
signature-verification
event-handling
Intermediate
7 steps
typescript
import { Processor, WorkerHost, OnWorkerEvent } from '@nestjs/bullmq'; import { Logger } from '@nestjs/common'; import { Job } from 'bullmq'; import { MailerService } from '../mailer/mailer.service';
Processing background email jobs in NestJS
job-queue
background-processing
dependency-injection
Intermediate
7 steps
typescript
import { DynamicModule, Module, Provider } from '@nestjs/common'; import Redis, { RedisOptions } from 'ioredis'; export const REDIS_CLIENT = Symbol('REDIS_CLIENT');
Building a dynamic Redis module in NestJS
dependency-injection
dynamic-modules
provider-tokens
Intermediate
8 steps
typescript
import { Injectable, Scope, Inject } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { Request } from 'express';
Request-scoped context service in NestJS
dependency-injection
request-scope
immutability
Intermediate
8 steps
typescript
import { ArgumentsHost, Catch, ExceptionFilter,
A catch-all exception filter in NestJS
error-handling
exception-filter
http
Intermediate
8 steps
typescript
import { Module, Injectable } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import * as Joi from 'joi';
Validated, typed config in NestJS
configuration
validation
dependency-injection
Intermediate
6 steps
typescript
import { createParamDecorator, ExecutionContext, UnauthorizedException,
Building a @CurrentUser decorator in NestJS
decorators
authentication
request-context
Intermediate
6 steps
typescript
import { CanActivate, ExecutionContext, Injectable,
Role-based route guards in NestJS
authorization
decorators
metadata-reflection
Intermediate
8 steps
typescript
import { CanActivate, ExecutionContext, Injectable,
A rate-limiting guard in NestJS
rate-limiting
guards
metadata
Intermediate
7 steps
typescript
import { Injectable, Logger } from '@nestjs/common'; import { Cron, CronExpression } from '@nestjs/schedule'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository, LessThan } from 'typeorm';
Scheduled session cleanup in NestJS
cron-scheduling
background-jobs
repository-pattern
Intermediate
7 steps