Migrating from NestJS
UDIOT is not a drop-in NestJS runtime. Move one feature at a time and preserve your existing API behavior with contract tests.
| NestJS concern | UDIOT public integration |
|---|---|
| Services/providers | Container, Injectable, explicit providers |
| Controllers/routes | Controller, method/parameter decorators, toExpressRouter |
| Request scope | createRequestScopeMiddleware |
| Guards | Application authentication plus RequireAuth / adapter authResolver |
| Validation pipes | Explicit public route schemas and application business checks |
| Exception filters | Server HttpError helpers and adapter Problem Details |
| Interceptors | Express middleware or explicit UDIOT pipeline composition |
Do not copy Nest-specific imports/decorators unchanged. UDIOT's Module
metadata is not a Nest application bootstrapper; internal module loaders are
not public runtime constructors. Similarly, the internal AI DTO decorators
are not exported consumer APIs.
Start with the Express adapter example, then providers, controller decorators and validation. Verify dependency lifetime, route prefixes, parameter binding and error response shapes explicitly.
Keep sensitive request state isolated and test parallel requests across users and tenants. The framework does not automatically carry over Nest guards, pipes, lifecycle hooks, testing overrides or transport adapters.