Last updated:
0 purchases
layerlens
LayerLens #
Generate dependency diagram in every folder of your Dart or Flutter
package as Mermaid flowchart documents.
NOTE: LayerLens shows inside-package dependencies. For cross-package dependencies use flutter pub deps.
Configure layerlens #
Configure command globally #
Run dart pub global activate layerlens
Verify you can run layerlens. If you get command not found, make sure
your path contains pub cache.
Configure command for a package #
Add layerlens: <version> to the section dev_dependencies in the package's pubspec.yaml.
Run dart pub get or flutter pub get for the package.
Configure IDE #
To see the diagrams in your IDE:
VSCode: install Markdown Preview Mermaid Support extension
Android Studio: enable the "Mermaid" extension in the
Markdown language settings
Generate diagrams #
Run command:
With global configuration: layerlens --path <your package root>
With package configuration: dart run layerlens in the package root
Find the generated file DEPENDENCIES.md in each source folder, where
libraries or folders depend on each other.
In VSCode, right click DEPENDENCIES.md and select 'Open Preview'
CI: re-generate on every GitHub push #
Add a dev_dependency to https://pub.dev/packages/layerlens
Copy the content of run-layerlens.yaml
to .github/workflows.
Alert on circular references #
You may want to avoid circular references, because without circles:
Code is easier to maintain
Chance of memory leaks is smaller
Treeshaking (i.e. not including non-used code into build) is more efficient
Incremental build is faster
LayerLens marks inverted dependencies (dependencies that create circles) with '!'.
Also you can add command dart run layerlens --fail-on-cycles to the repo's pre-submit bots.
Build filters #
If you want to generate the DEPENDENCIES.md only for a specific folders, you can use --build-filter option and you should use glob syntax. For example, to generate the diagram only for the root lib/ folder, you run following dart run layerlens --build-filter "lib".
You can specify multiple build filters . The mechanism is inspired by --build-filter in Dart's build_runner. For example, to run the layerlens for root lib/ and it's subfolder lib/subfolder1 run layerlens --build-filter "lib" --build-filter "lib/subfolder1". To generate the entire subtree for a given subfolder you can run following: layerlens --build-filter "lib/subfolder1" --build-filter "lib/subfolder1/**"
Supported languages #
While layerlens concepts are language agnostic, for now only dart is supported.
Please submit an issue, if you want other language to be added.
Contribute to layerlens #
See CONTRIBUTING.md for details.
License #
Apache 2.0; see LICENSE for details.
Disclaimer #
This project is not an official Google project. It is not supported by
Google and Google specifically disclaims all warranties as to its quality,
merchantability, or fitness for a particular purpose.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.