dart_inspect 1.0.4
dart_inspect: ^1.0.4 copied to clipboard
Dart source inspection tool and CLI for reporting imports, classes, and fields using the analyzer AST, with Markdown and programmatic support.
dart_inspect #
dart_inspect is a Dart source analysis tool for discovering and reporting project structure.
It analyzes Dart code using the official analyzer AST to extract:
- 📦 File imports
- 🧩 Class declarations
- 🏷 Instance fields and types
The tool can be used both as a CLI utility and as a programmatic inspection library, making it useful for:
- architecture inspection
- dependency auditing
- documentation generation
- CI validation
- large codebase exploration
- Generating class diagrams and visual graphics (Mermaid)
Usage #
CLI #
Activate globally:
dart pub global activate dart_inspect
Run inspection:
dart_inspect [directory] [options]
Options #
-
--private-onlyInclude only private fields (_field). -
--final-onlyInclude onlyfinalfields. -
--no-finalExcludefinalfields. -
--no-primitivesIgnore primitive/common Dart types such asString,int,bool, etc. -
--no-classesDo not report class fields. -
--no-importsDo not report imports. -
--markdownOutput report in Markdown format. -
--mermaidOutput report as a Mermaid class diagram. -
--simpleForce simple output (default when no format is specified). -
--sort-entriesSort fields and classes alphabetically (default: false) -
-h,--helpShow help message.
Format Notes #
Formats are mutually exclusive:
--simple(default)--markdown--mermaid
If none is specified, simple is used automatically.
Examples #
Inspect the current project:
dart_inspect
Inspect another directory:
dart_inspect ../backend
Generate a Markdown architecture report:
dart_inspect lib --markdown
Generate a Mermaid class diagram:
dart_inspect lib --mermaid
Inspect only private state fields:
dart_inspect lib --private-only
Show only non-primitive domain fields:
dart_inspect lib --no-primitives
Example Output #
Simple Output #
dart_inspect
────────────────────────────────────────────
Directory : lib
Format : simple
Options : (none)
================================================================================
lib/src/user.dart
Imports:
dart:async
User
int id
String name
Token _token
Markdown Output #
# Dart Inspect Report
## Configuration
- Directory: `lib`
- Format: markdown
- Options: (none)
---
## lib/src/user.dart
### Imports
- `dart:async`
### User
- int id
- String name
- Token _token
Perfect for:
- GitHub documentation
- architecture reports
- automated CI artifacts
- AI input
Mermaid Output #
%% Dart Inspect - Mermaid Report
%% Directory: lib
%% Options: (none)
classDiagram
class User {
int id
String name
Token token
}
class Token {
String value
}
%% Relationships
User --> Token
Perfect for:
- visual architecture diagrams
- class relationship exploration
- system design documentation
You can render this using:
- https://mermaid.live
- GitHub Markdown (with Mermaid enabled)
- tools like Obsidian, Notion, or VS Code extensions
Programmatic Usage #
dart_inspect can be embedded directly into Dart tools and automation workflows.
Using reporters (recommended) #
import 'dart:io';
import 'package:dart_inspect/dart_inspect.dart';
Future<void> main() async {
const options = DartInspectOptions(
markdown: true,
noPrimitives: true,
);
final inspector = DartInspect(options);
final reporter = DartInspectReporterMarkdown('lib', options);
final output = await reporter.build(
inspector.scanDirectory(Directory('lib')),
);
print(output);
}
Streaming raw reports #
final inspect = DartInspect(
const DartInspectOptions(),
);
await for (final report in inspect.scanCode(source)) {
print(report);
}
Available Reporters #
DartInspectReporterSimpleDartInspectReporterMarkdownDartInspectReporterMermaid
Each reporter:
- consumes a
Stream<ReportInfo> - produces a formatted
Stringoutput
How It Works #
- Parses Dart files using the analyzer AST
- Collects import directives
- Detects class declarations
- Extracts instance fields and types
- Emits structured reports as a stream
This allows inspection of very large projects efficiently.
Issues & Feature Requests #
Please report issues or request features via the issue tracker.
Author #
Graciliano M. Passos: gmpassos@GitHub
License #
Dart free & open-source license.