Overview
The full nestjs-media package set — core, the NestJS module, the browser client, disks, ORM stores, the image engine, and the ecosystem glue points.
Everything ships under the @dudousxd/nestjs-media* scope, versioned together. Install only what you use — disks, stores, and the image engine are separate packages so you never pull an S3 SDK or sharp into an app that doesn't need it.
The map
| Package | Role |
|---|---|
-core | SPIs (StorageDriver, MediaStore, ImageProcessor), StorageManager, MediaLibrary, uploadMode, diagnostics, resumable-upload engine, tus handler |
(umbrella) | NestJS MediaModule + MediaService + tus controller + the /storage subpath |
-client | framework-agnostic browser client — uploadMedia (tus) + mediaUrl |
-disk-local | local filesystem driver |
-disk-s3 | S3 driver (presign + native multipart) |
-image-sharp | sharp-backed ImageProcessor |
-database-typeorm | TypeORM media store (non-destructive auto-schema) |
-database-mikro-orm | MikroORM media store (safe auto-schema) |
-database-drizzle | Drizzle media store (sqlite, migration-first) |
-database-prisma | Prisma media store (consumer-managed schema) |
-telescope | Telescope watcher consuming nestjs:media:* |
-codegen | Codegen extension emitting a typed media client |
-react | useMediaUpload hook + MediaUploader component |
-testing | in-memory driver/store/upload-session + conformance suites |
How they layer
-react ─┐
├─▸ -client ──▸ (tus HTTP) ──▸ umbrella ─▸ -core
-codegen┘ │
-disk-local / -disk-s3 ──┤ (StorageDriver)
-image-sharp ────────────┤ (ImageProcessor)
-database-{typeorm,mikro-orm,drizzle,prisma} ───┤ (MediaStore)
-telescope ──────────────┘ (diagnostics consumer)-core defines the contracts; everything else either implements one (disks, stores, the image engine) or consumes the library (the umbrella module, the glue points). Start at -core for the SPIs, or jump to the package you're wiring.
Diagnostics & the glue points
Media emits to nestjs:media:* diagnostics channels with zero coupling; Telescope, Codegen, and React plug in from there.
@dudousxd/nestjs-media-core
The framework-agnostic heart — SPIs, the storage facade, the media-library, the upload engine, and diagnostics. No NestJS dependency.