import_guard 0.0.6 copy "import_guard: ^0.0.6" to clipboard
import_guard: ^0.0.6 copied to clipboard

An analyzer plugin to guard imports between folders. Enforce clean architecture layer dependencies with configurable deny rules.

import_guard #

An analyzer plugin to guard imports between packages and folders.

日本語版 README

Requires Dart 3.10+. For older Dart versions, use import_guard_custom_lint.

Features #

  • Define import restrictions per folder using import_guard.yaml
  • Glob patterns: package:my_app/data/**, package:flutter/**
  • Works with package imports and relative imports
  • Hierarchical config inheritance from repo root
  • Native IDE integration via dart analyze / flutter analyze

Installation #

dev_dependencies:
  import_guard: ^0.0.1

Enable in analysis_options.yaml:

plugins:
  import_guard: ^0.0.1

Usage #

Create import_guard.yaml in any directory to define restrictions for files in that directory.

Example: Clean Architecture #

For a Flutter app named my_app:

my_app/
├── pubspec.yaml          # name: my_app
└── lib/
    ├── domain/
    │   ├── import_guard.yaml
    │   └── user.dart
    ├── presentation/
    │   └── user_page.dart
    └── data/
        └── user_repository.dart
# lib/domain/import_guard.yaml
deny:
  - package:my_app/presentation/**
  - package:my_app/data/**

This prevents domain layer from importing presentation or data layers.

Pattern Types #

Pattern Matches
package:my_app/data/** All files under lib/data/
package:my_app/data/* Direct children of lib/data/ only
package:flutter/** All flutter imports
dart:mirrors Specific dart library
../data/** Relative path patterns

To simplify configuration, enable always_use_package_imports:

# analysis_options.yaml
linter:
  rules:
    - always_use_package_imports

Then you only need to write package patterns (no relative path patterns needed).

Running #

dart analyze
# or
flutter analyze

License #

MIT

0
likes
145
points
65
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

An analyzer plugin to guard imports between folders. Enforce clean architecture layer dependencies with configurable deny rules.

Repository (GitHub)
View/report issues

Topics

#lints #lint #clean-architecture #static-analysis

License

MIT (license)

Dependencies

analysis_server_plugin, analyzer, path, yaml

More

Packages that depend on import_guard