@theneo/nestjs
v0.1.0
Published
NestJS module for hosting Theneo API Reference
Readme
@theneo/nestjs
NestJS DynamicModule that serves the Theneo API Reference UI and static assets from @theneo/vanilla.
Installation
yarn add @theneo/nestjs @nestjs/common @nestjs/core @nestjs/platform-express reflect-metadata rxjsIn this monorepo: from the repository root, install and build so node_modules/@theneo/vanilla/dist exists:
yarn install
yarn turbo run build --filter=@theneo/nestjsSee the root README and NestJS example.
Usage
import { Module } from "@nestjs/common";
import { TheneoModule } from "@theneo/nestjs";
@Module({
imports: [
TheneoModule.forRoot({
path: "docs",
specUrl: "/openapi.json",
title: "My API",
}),
],
})
export class AppModule {}Visit http://localhost:3000/docs.
TheneoModule.forRoot(config)
Returns a NestJS DynamicModule that registers middleware serving:
| Method | Path | Description |
| ------ | ----------------- | -------------------------------- |
| GET | /{path} | HTML shell that boots the viewer |
| GET | /{path}/theneo.js | UMD bundle from @theneo/vanilla |
| GET | /{path}/theneo.css | Styles from @theneo/vanilla |
Config
- path — Route prefix (default
"docs"). Integration-only; not forwarded to the viewer.
All remaining config properties are forwarded verbatim to the in-browser viewer, so any current or future ApiReferenceProps works. Common ones:
- specUrl — OpenAPI document URL. Same-origin paths like
/openapi.jsonwork. - spec — Optional inline OpenAPI object (serialized into the page).
- theme —
"light"or"dark". - title — Document and UI title.
- url — Deprecated alias for specUrl, kept for backwards compatibility.
Platform
Requires @nestjs/platform-express (the default NestJS HTTP platform). Fastify platform is not currently supported.
Peer dependencies
@nestjs/common^10 or ^11@nestjs/core^10 or ^11@nestjs/platform-express^10 or ^11 (Express platform is required; Fastify is not supported)reflect-metadata^0.1 or ^0.2 (standard NestJS requirement)rxjs^7 (standard NestJS requirement)
