Categorygithub.com/samlitowitz/goimportcycle
repository
1.0.9
Repository: https://github.com/samlitowitz/goimportcycle.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

Go Import Cycle

Go Report Card

goimportcycle is a tool to visualize Go imports resolved to the package or file level.

Installation

go install github.com/samlitowitz/goimportcycle/cmd/[email protected]

Usage

goimportcycle -path examples/simple/ -dot imports.dot
dot -Tpng -o assets/example.png imports.dot

Example import graph resolved to the file level

Red lines indicate files causing import cycles between packages. Packages involved in a cycle have their backgrounds colored red.

goimportcycle -path examples/simple/ -dot imports.dot -resolution package
dot -Tpng -o assets/example.png imports.dot

Example import graph resolved to the package level

Red lines indicate import cycles between packages.

Configuration

The configuration file follows the JSON Schema outlined in assets/config-schema.

The simple-config example uses the following schema...

palette:
  base:
    packageName: "rgb(174, 209, 230)"
    packageBackground: "rgb(207, 232, 239)"
    fileName: "rgb(160, 196, 226)"
    fileBackground: "rgb(198, 219, 240)"
    importArrow: "rgb(133, 199, 222)"
  cycle:
    packageName: "#FFB3C6"
    packageBackground: "#FFE5EC"
    fileName: "#FF8FAB"
    fileBackground: "#FFC2D1"
    importArrow: "#FB6F92"

...to produce the following outputs...

Example import graph resolved to the file level

Example import graph resolved to the package level