@singhak/nodeui-nestjs
v0.6.1
Published
NestJS module adapter for the NodeUI developer console.
Maintainers
Readme
@singhak/nodeui-nestjs
NestJS module adapter for the NodeUI developer console. Registers the core
middleware for every route, serving the bundled React console and its API under
{path} (default /nodeui) and recording app requests in the request-log
panel.
Install
npm install @singhak/nodeui-nestjsPeer dependencies: @nestjs/common, @nestjs/core, reflect-metadata,
rxjs.
Usage
import { Module } from '@nestjs/common';
import { NodeUIModule } from '@singhak/nodeui-nestjs';
@Module({ imports: [NodeUIModule.register()] })
export class AppModule {}// main.ts
import 'reflect-metadata';
import { NestFactory } from '@nestjs/core';
import { NodeUIService } from '@singhak/nodeui-nestjs';
import { AppModule } from './app.module';
async function bootstrap(): Promise<void> {
const app = await NestFactory.create(AppModule);
await app.listen(3000, '127.0.0.1');
app.get(NodeUIService).mark('listening');
}
void bootstrap();Open http://127.0.0.1:3000/nodeui for the console and
http://127.0.0.1:3000/nodeui/api/config for the API.
NodeUIService
Injectable handle to the underlying server:
mark(name)— record a startup timing mark.config— the effective configuration.shutdown()— stop all sampling and timers.
Options
NodeUIModule.register(options?) accepts any @singhak/nodeui-core NodeUIOptions.
See the @singhak/nodeui-core README for the configuration table and safety model.
Development
npm run typecheck
npm test
npm run buildLogs panel
Nest's default logger writes to process.stdout, not console.*, so its output
would not reach the Logs panel. Mirror it with NodeUILogger:
const app = await NestFactory.create(AppModule, { bufferLogs: true });
app.useLogger(app.get(NodeUILogger));The module also shuts the console down (stopping samplers and restoring
console.*) when the Nest app closes.
Request bodies
Nest parses request bodies before module middleware runs, so with captureRequestDetail: { bodies: true } response bodies are captured but request bodies are not (query and headers are). Capturing request bodies needs the middleware registered ahead of the parser, which Nest does not expose for module middleware.
