Skip to content

Diblob Visualizer ​

Interactive dependency injection graph visualization for diblob.

Visualize your dependency injection container as an interactive graph with nodes representing blobs and edges showing dependencies between them.

Features ​

  • 📊 Interactive Graph Visualization - Pan, zoom, and drag nodes
  • 🔄 Real-time Updates - Watch the graph update as you modify your container
  • 🎯 Lifecycle Indicators - Visual distinction between Singleton and Transient services
  • 📈 Statistics Dashboard - See counts of nodes, edges, and lifecycle types
  • 🎨 Clean UI - Modern, responsive design with clear visual hierarchy
  • 🔌 Embeddable - Easy to integrate into any Svelte application
  • 🏷️ Metadata Support - Display custom names, descriptions, and metadata for blobs
  • 🌐 Remote Visualization - Connect to containers running in different processes

Screenshots ​

Dependency Graph Visualization ​

Dependency Graph

The visualizer displays your dependency injection container as an interactive graph, showing:

  • Blob nodes with their metadata (name, description)
  • Dependencies between services
  • Lifecycle indicators (Singleton/Transient)
  • Real-time statistics

Metadata Display ​

Metadata Display

Blobs with metadata show rich information:

  • Custom names instead of generic blob IDs
  • Descriptions for better understanding
  • Any custom metadata properties you define

Installation ​

bash
npm install @speajus/diblob-visualizer @speajus/diblob

Quick Start ​

Standalone Demo ​

bash
npm install
npm run dev

Open http://localhost:5173 to see the visualizer in action.

Embedding in Your Application ​

svelte
<script lang="ts">
  import { DiblobVisualizer } from '@speajus/diblob-visualizer';
  import { createContainer, createBlob } from '@speajus/diblob';

  const container = createContainer();
  const logger = createBlob<Logger>();
  container.register(logger, ConsoleLogger);
</script>

<DiblobVisualizer {container} />

Documentation ​

Component Props ​

PropTypeDefaultDescription
containerContainerrequiredThe diblob container to visualize
autoRefreshbooleanfalseAuto-refresh at intervals
refreshIntervalnumber1000Refresh interval (ms)

Graph Legend ​

  • 🔒 Blue nodes - Singleton services
  • ⚡ Orange nodes - Transient services
  • Red nodes - Unregistered dependencies
  • Arrows - Dependencies between services

Architecture ​

Built with Svelte 5, Svelte Flow, TypeScript, and Vite.

Development ​

bash
npm install
npm run dev      # Start dev server
npm run build    # Build library
npm run check    # Type check

License ​

MIT

Released under the MIT License.