Skip to content

Simple tool for browsing Dagger graphs generated via an SPI plugin

License

Notifications You must be signed in to change notification settings

Chr9114/dagger-browser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dagger Browser

Dagger Browser is a progressive web app for easily navigating a project's Dagger graph. The graph data is populated from a Dagger SPI plugin, and the browser is built using CRA (create-react-app) with Typescript.

Trying a sample

The plugin/sample directory contains a fork of a simple example from the Dagger repo.

You can run ./run.sh to generate the dagger components manifest for this example and display in the Dagger Browser.

Using Dagger Browser in your app

To build a Dagger Browser site for your project, you'll need to generate json files for your project's Dagger components.

To get started:

  1. Look up the latest version of the processor plugin in Maven Central:

  1. Add a dependency on com.snap.daggerbrowser:daggerbrowser-processor to any Gradle modules in your project that process Dagger components:
allprojects {
  repositories {
    mavenCentral()
  }
}
dependencies {
  kapt "com.snap.daggerbrowser:daggerbrowser-processor:LATEST_VERSION"
}  
  1. Build your project. The plugin will generate json files for each Dagger component.

  2. Use scripts/mkmanifest.sh to aggregate the component json files into a ComponentsManifest.json.

  3. Open a Dagger Browser instance, and drag-and-drop your ComponentsManifest.json file to load it.

  4. Alternatively, build a Dagger Browser instance from source. Checkout out the dagger-browser project

$: git clone [email protected]:Snapchat/dagger-browser.git
  1. Build Dagger Browser using your generated json files:
cd dagger-browser
./run.sh ../my_project/

About

Simple tool for browsing Dagger graphs generated via an SPI plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 77.6%
  • Java 8.7%
  • CSS 7.0%
  • Shell 3.1%
  • HTML 1.7%
  • Kotlin 1.5%
  • JavaScript 0.4%