@picadeck/nestjs
v1.0.0
Published
NestJS module wrapper for Picadeck schema visualizer
Maintainers
Readme
@picadeck/nestjs
NestJS module for Picadeck Schema Visualizer. Serves an interactive schema visualization route directly from your NestJS application.
Installation
npm install @picadeck/nestjs @picadeck/corePlus the parser package for your ORM:
npm install @picadeck/mongoose-parser # for Mongoose
npm install @picadeck/typeorm-parser # for TypeORM
npm install @picadeck/sequelize-parser # for Sequelize
npm install @picadeck/prisma-parser # for PrismaUsage with register()
Use register() when you want explicit control over which parser runs.
import { Module } from "@nestjs/common";
import { SchemaVisualizerModule } from "@picadeck/nestjs";
import { parseMongooseConnection } from "@picadeck/mongoose-parser";
import { getConnectionToken } from "@nestjs/mongoose";
@Module({
imports: [
SchemaVisualizerModule.register({
route: "/schema",
parser: async (moduleRef) => {
const connection = moduleRef.get(getConnectionToken());
return parseMongooseConnection(connection);
},
theme: "dark",
title: "My API Schema",
}),
],
})
export class AppModule {}Usage with autoDetect()
Use autoDetect() to let Picadeck probe the NestJS DI container and pick the right parser automatically. Detection order: Mongoose -> TypeORM -> Sequelize -> Prisma file.
import { Module } from "@nestjs/common";
import { SchemaVisualizerModule } from "@picadeck/nestjs";
@Module({
imports: [
SchemaVisualizerModule.autoDetect({
route: "/schema",
theme: "light",
}),
],
})
export class AppModule {}API
SchemaVisualizerModule.register(options)
| Option | Type | Required | Description |
| -------- | --------------------------------------------- | -------- | ---------------------------------- |
| route | string | Yes | Route path (e.g. '/schema') |
| parser | (moduleRef: ModuleRef) => UniversalSchema | Yes | Parser function with DI access |
| theme | 'light' \| 'dark' | No | UI theme (default: 'light') |
| title | string | No | Page title |
SchemaVisualizerModule.autoDetect(options)
| Option | Type | Required | Description |
| ------------------ | ---------------------- | -------- | ------------------------------------------------ |
| route | string | Yes | Route path |
| theme | 'light' \| 'dark' | No | UI theme (default: 'light') |
| title | string | No | Page title |
| prismaSchemaPath | string | No | Path to .prisma file (default: './prisma/schema.prisma') |
License
MIT
