Discover API endpoints at runtime and generate Mermaid sequence diagrams for documentation and debugging.
Repository: github.com/chandpriyankara/apitrace
pnpm add @tix.lk/apitraceUse the core API with your own controller/service metadata:
import { generateMermaidDiagram } from '@tix.lk/apitrace';
const diagram = await generateMermaidDiagram(
{
controllers: [
{
name: 'UserController',
path: '/users',
module: 'UserModule',
guards: [],
dependencies: ['UserService'],
endpoints: [
{
method: 'GET',
path: '/users',
methodName: 'findAll',
controller: 'UserController',
module: 'UserModule',
guards: [],
roles: [],
parameters: [],
returnType: 'Promise<User[]>',
decorators: [],
dependencies: [],
},
],
},
],
services: [
{
name: 'UserService',
module: 'UserModule',
methods: ['findAll'],
dependencies: [],
repositories: ['UserRepository'],
},
],
},
{
apiName: 'My API',
sourceRoot: './src',
},
);
console.log(diagram); // paste into mermaid.liveFor decorator-based Node.js applications, register the built-in discovery module:
import { join } from 'path';
import { ApiTraceModule } from '@tix.lk/apitrace';
ApiTraceModule.forRoot({
apiName: 'My API',
sourceRoot: join(process.cwd(), 'src'),
});This exposes GET /api-trace/sequence-diagram and returns plain Mermaid text.
Peer dependencies apply when using the runtime discovery module.
| Export | Purpose |
|---|---|
generateMermaidDiagram |
Build a full diagram from discovery data |
generateControllerMermaidDiagram |
Diagram for a single route handler |
ApiTraceModule |
Runtime discovery + optional HTTP endpoint |
ApiTraceService |
Programmatic discovery and diagram generation |
buildFullPath, findBestMatchingMethod |
Routing and method-matching helpers |
pnpm install
pnpm test
pnpm buildLicensed under the Apache License, Version 2.0. See LICENSE.