Prisma Generate UML is a VSCode extension that quickly creates UML diagrams from Prisma schemas with a single click, offering easy visualization.
You can download final bundles from the Releases section.
Note
π§ Prisma Generate UML is currently under development. Stay tuned for more updates!
graph TB
subgraph "Prisma Input"
SCHEMA["π schema.prisma<br/>Prisma schema file<br/>Models, Enums, Relations"]
FILE_WATCHER["ποΈ File Watcher<br/>Detects .prisma changes"]
end
subgraph "VSCode Environment"
EDITOR["π VSCode Editor<br/>Editor interface"]
CMD["β‘ Command Palette<br/>prisma-generate-uml.generateUML"]
ICON["π UML Icon<br/>Toolbar button"]
end
subgraph "Extension Core"
EXT_ENTRY["π extension.ts<br/>Entry point<br/>Command registration"]
PARSER["β‘ DMMF Parser<br/>@prisma/internals<br/>getDMMF() + getSchemaWithPath()"]
RENDER["π¨ Render Engine<br/>transformDmmfToModelsAndConnections()<br/>Generates Models, Connections, Enums"]
PANEL_MGR["π PrismaUMLPanel<br/>Manages WebView lifecycle<br/>postMessage() communication"]
end
subgraph "WebView Container"
WEBVIEW["π VSCode WebView<br/>Isolated container<br/>HTML + CSS + JS"]
CSP["π Content Security Policy<br/>WebView security"]
end
subgraph "React Application"
APP["βοΈ App.tsx<br/>Root component<br/>Global state"]
THEME["π¨ Theme Provider<br/>VSCode theme handling"]
VISUALIZER["π SchemaVisualizer<br/>Main container"]
FLOW_PROVIDER["π ReactFlowProvider<br/>@xyflow/react context"]
end
subgraph "UML Components"
FLOW["π ReactFlow Canvas<br/>Rendering engine<br/>Drag & Drop, Zoom, Pan"]
MODEL_NODE["ποΈ ModelNode<br/>Model component<br/>Fields, Types, Relations"]
ENUM_NODE["π EnumNode<br/>Enum component<br/>Enumerated values"]
CONNECTIONS["π Edges/Connections<br/>Model relationships"]
end
subgraph "Output Actions"
SCREENSHOT["πΈ Screenshot<br/>Export PNG/SVG"]
DOWNLOAD["πΎ Download<br/>Save image"]
end
SCHEMA --> FILE_WATCHER
FILE_WATCHER --> EXT_ENTRY
EDITOR --> CMD
EDITOR --> ICON
CMD --> EXT_ENTRY
ICON --> EXT_ENTRY
EXT_ENTRY --> PARSER
PARSER --> RENDER
RENDER --> PANEL_MGR
PANEL_MGR --> WEBVIEW
WEBVIEW --> CSP
CSP --> APP
APP --> THEME
APP --> VISUALIZER
VISUALIZER --> FLOW_PROVIDER
FLOW_PROVIDER --> FLOW
FLOW --> MODEL_NODE
FLOW --> ENUM_NODE
FLOW --> CONNECTIONS
MODEL_NODE --> SCREENSHOT
ENUM_NODE --> SCREENSHOT
SCREENSHOT --> DOWNLOAD
DOWNLOAD -.-> PANEL_MGR
PANEL_MGR -.-> EXT_ENTRY
prisma-generate-uml/
βββ packages/
β βββ prisma-generate-uml/ # VSCode Extension
β β βββ src/
β β β βββ extension.ts # Entry point
β β β βββ panels/ # WebView management
β β β βββ core/ # Rendering logic
β β βββ package.json
β β
β βββ webview-ui/ # React Frontend
β β βββ src/
β β β βββ App.tsx # Main component
β β β βββ components/ # UML Components
β β β βββ lib/ # Utils and types
β β βββ package.json
β β
β βββ schema.prisma # Example schema
β
βββ turbo.json # Turbo configuration
βββ package.json # Root workspace
- Node.js 18+
- npm
# Clone the repository
git clone https://github.com/AbianS/prisma-generate-uml.git
cd prisma-generate-uml
# Install dependencies
npm install
# Development
npm run dev
- π₯ Instant UML Diagrams: Generate UML diagrams from Prisma schemas with a single click
- πΌ Easy Visualization: Simplify data architecture visualization in an exciting way
- π Seamless Integration: Works seamlessly within VSCode, no extra configuration required
- π Multi-file Prisma Schema Support: Full support for Prisma's
prismaSchemaFolder
feature - π Automatic Updates: Keep your UML diagrams up-to-date with schema changes
- Open a
.prisma
file in VSCode - Look for the UML icon in the editor toolbar
- Click it to generate the diagram instantly
- Extension: TypeScript + VSCode Extension API
- WebView: React + Vite + Tailwind CSS
- UML Rendering: React Flow + Custom Components
- Prisma Integration: @prisma/internals DMMF
- Monorepo: Turbo + npm workspaces
- Code Quality: Biome (ESLint + Prettier alternative)
MIT License - see LICENSE for more details.