How fazza-abiyyu/exnestjs-starter works
Exnest is a multi-runtime, OData-oriented resource framework accompanied by three independently usable engines. The main user workflow is an HTTP request entering either framework app, reaching a resource controller, and returning OData data or metadata; the customer implementation is sampled for Elysia, while Nest’s app mounting is sampled. The README documents ORM and media-engine capabilities retained here, but their unsampled route and service wiring is not inferred. Engine internals and adapter calls are shown only where excerpts support them.
Main entry points: customers.controller.ts Customer controller · video-stream/engine.ts Video engine · pdf-stream/engine.ts PDF engine · app.ts Elysia app
Components 30
Framework Apps
- Elysia app
packages/elysia/src/app.ts - Customer endpoint
packages/elysia/src/endpoints/customers/customers.endpoint.ts - Nest app
packages/nestjs/src/main.ts - Endpoint mounting
packages/nestjs/src/endpoints/index.ts
Resources And OData
- Customer controller
packages/elysia/src/modules/customers/customers.controller.ts - Customer service
packages/elysia/src/modules/customers/customers.service.ts - OData response
packages/elysia/src/lib/odata/index.ts - Metadata controller
packages/elysia/src/modules/metadata/metadata.controller.ts - Metadata service
packages/elysia/src/modules/metadata/metadata.service.ts - Nest customer module
packages/nestjs/src/modules - Nest metadata
packages/nestjs/src/modules/metadata/metadata.controller.ts
VA ORM
- Schema and CLI
engine/va-orm/packages/cli/src - Schema parser
engine/va-orm/packages/schema/src/schema.parser.ts - ORM client
engine/va-orm/packages/client/src/core/va.client.ts - Query builder
engine/va-orm/packages/client/src/core/query-builder.ts - Repositories
engine/va-orm/packages/client/src/repository/repository.ts - SQL drivers
engine/va-orm/packages/client/src/drivers
Media Engines
- Video Nest adapter
engine/video-stream/adapters/nest.controller.ts - Video engine
engine/video-stream/engine.ts - Video store adapter
engine/video-stream/adapters/prisma.store.ts - Video files
engine/video-stream/internals/files.ts - PDF Nest adapter
engine/pdf-stream/adapters/nest.controller.ts - PDF engine
engine/pdf-stream/engine.ts - PDF rasterizer
engine/pdf-stream/internals/raster.ts - Document store adapter
engine/pdf-stream/adapters/prisma.store.ts - PDF files
engine/pdf-stream/internals/files.ts
Other components
- API caller
- SQL databases
- Remote media source
- FFmpeg
Connections 31
- API caller → Elysia app: sends request
- Elysia app → Customer endpoint: dispatches route
- Customer endpoint → Customer controller: invokes handler
- Customer controller → Customer service: calls service
- Customer controller → OData response: builds response
- Customer controller → Metadata service: reads metadata URL
- Elysia app → Metadata controller: dispatches module
- Metadata controller → Metadata service: requests metadata
- Metadata controller → OData response: builds response
- API caller → Nest app: sends request
- Nest app → Endpoint mounting: mounts endpoints
- Endpoint mounting → Nest customer module: mounts resource
- Endpoint mounting → Nest metadata: mounts resource
- Nest metadata → Metadata service: requests metadata
- Schema and CLI → Schema parser: parses schema
- Schema and CLI → ORM client: generates client
- ORM client → Repositories: exposes repositories
- Repositories → Query builder: builds queries
- Query builder → SQL drivers: uses driver
- SQL drivers → SQL databases: executes SQL
- Remote media source → Video Nest adapter: submits source
- API caller → Video Nest adapter: requests stream
- Video Nest adapter → Video engine: calls engine
- Video engine → Video store adapter: reads and writes
- Video engine → Video files: stores segments
- Video engine → FFmpeg: packages HLS
- API caller → PDF Nest adapter: requests document
- PDF Nest adapter → PDF engine: calls engine
- PDF engine → Document store adapter: reads and writes
- PDF engine → PDF files: stores pages
- PDF engine → PDF rasterizer: rasterizes pages