Code Explainers
NestJS code explainers
typescript
import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import * as Joi from 'joi';
Validating env config at boot in NestJS
configuration
schema-validation
environment-variables
Intermediate
8 steps
typescript
import { Inject, Injectable, Logger } from '@nestjs/common'; import { CACHE_MANAGER } from '@nestjs/cache-manager'; import { Cache } from 'cache-manager'; import { InjectRepository } from '@nestjs/typeorm';
A cache-aside country lookup in NestJS
cache-aside
dependency-injection
batch-lookup
Intermediate
8 steps
typescript
import { Injectable, Scope, Inject, NotFoundException } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { Request } from 'express'; import { DataSource } from 'typeorm';
Per-tenant database connections in NestJS
multi-tenancy
connection-pooling
dependency-injection
Advanced
8 steps
typescript
import { CallHandler, ConflictException, ExecutionContext,
Idempotent POST requests in NestJS with Redis
idempotency
interceptor
redis
Advanced
7 steps
typescript
import { Injectable, Scope } from '@nestjs/common'; import DataLoader from 'dataloader'; import { InjectRepository } from '@nestjs/typeorm'; import { In, Repository } from 'typeorm';
Batching queries with DataLoader in NestJS
dataloader
batching
n+1
Intermediate
7 steps
typescript
import { createParamDecorator, ExecutionContext, UnauthorizedException,
A signed-cookie param decorator in NestJS
custom-decorators
hmac
timing-safe-comparison
Advanced
8 steps
typescript
import { CallHandler, ExecutionContext, Injectable,
Deduping in-flight requests in NestJS
interceptor
request-deduplication
rxjs
Advanced
6 steps
typescript
import { Controller, Get, Param,
HTTP conditional caching in a NestJS controller
http-caching
etag
conditional-requests
Intermediate
7 steps
typescript
import { MiddlewareConsumer, Module, NestModule,
How middleware binds to routes in NestJS
middleware
routing
modules
Intermediate
6 steps
typescript
import { Injectable, UnauthorizedException } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; import { Strategy } from 'passport-headerapikey'; import { ConfigService } from '@nestjs/config';
Building an API-key auth strategy in NestJS
authentication
passport
dependency-injection
Intermediate
8 steps
typescript
import { Type, applyDecorators } from '@nestjs/common'; import { ApiExtraModels, ApiOkResponse,
A reusable paginated Swagger decorator in NestJS
decorators
generics
openapi
Intermediate
6 steps
typescript
import { IsEmail, IsNotEmpty, IsOptional,
How validation groups reuse one DTO in NestJS
validation
dto
decorators
Intermediate
9 steps
typescript
import { Body, Controller, Ip, Post, UnauthorizedException } from '@nestjs/common'; import { Throttle, ThrottlerGuard } from '@nestjs/throttler'; import { UseGuards } from '@nestjs/common'; import { AuthService } from './auth.service';
Rate-limiting an auth flow in NestJS
rate-limiting
authentication
guards
Intermediate
8 steps
typescript
import { Controller, Param, Sse, MessageEvent } from '@nestjs/common'; import { Observable, interval, merge } from 'rxjs'; import { filter, map, takeWhile } from 'rxjs/operators'; import { JobService } from './job.service';
Streaming job progress with SSE in NestJS
server-sent-events
reactive-streams
rxjs
Intermediate
8 steps
typescript
import { Controller, All, Req,
Catch-all routes and error shaping in NestJS
exception-handling
routing
middleware
Intermediate
6 steps
typescript
import { ArgumentsHost, Catch, ConflictException,
Turning TypeORM lock errors into 409s in NestJS
exception-handling
optimistic-locking
http-status
Intermediate
6 steps
typescript
import { Injectable, PipeTransform, ArgumentMetadata,
A custom validation pipe in NestJS
validation
dto
recursion
Intermediate
10 steps
typescript
import { CallHandler, ExecutionContext, Injectable,
Recording HTTP metrics with a NestJS interceptor
interceptor
observability
prometheus
Intermediate
5 steps