@tix.lk/apitrace
v1.0.1
Published
Discover API endpoints and generate Mermaid sequence diagrams
Maintainers
Readme
apitrace
Discover API endpoints at runtime and generate Mermaid sequence diagrams for documentation and debugging.
Repository: github.com/chandpriyankara/apitrace
Install
pnpm add @tix.lk/apitraceGenerate diagrams from discovery data
Use 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.liveRuntime discovery module
For 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.
Exports
| 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 |
Development
pnpm install
pnpm test
pnpm buildLicense
Licensed under the Apache License, Version 2.0. See LICENSE.
