Documentation
¶
Overview ¶
Package depgraph builds a Zero's dependeny injection type graph.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// Position is the position of the function declaration.
Position token.Position
// Pattern is the parsed HTTP mux pattern
Pattern *directiveparser.DirectiveAPI
// Function is the function that handles the API
Function *types.Func
// Package is the package that contains the function
Package *packages.Package
// Options is a map of options for the API endpoint
Options map[string]string
}
API represents a method that is an exposed API endpoint. API endpoints are annotated like so:
//zero:api [<method>] [<host>]/[<path>] [<option>[=<value>] ...]
type Graph ¶
type Graph struct {
Dest *types.Package
Providers map[string]*Provider
Configs map[string]types.Type
APIs []*API
Missing map[*types.Func][]types.Type
}
func Analyse ¶
Analyse statically loads Go packages, then analyses them for //zero:... annotations in order to build the Zero's dependency injection graph.
func (*Graph) Graph ¶
Graph returns the dependency graph as a map where keys are type strings and values are slices of their dependency type strings.
func (*Graph) ImportAlias ¶
ImportAlias returns an alias for the given package path, or "" if the package is the destination package.
type Option ¶
type Option func(*graphOptions) error
func WithPatterns ¶
WithPatterns adds additional package patterns to search for annotations.
func WithProviders ¶
WithProviders selects a provider for a type if multiple are available.
type Provider ¶
type Provider struct {
// Position is the position of the function declaration.
Position token.Position
Directive *directiveparser.DirectiveProvider
// Function is the function that provides the type.
Function *types.Func
// Package is the package that contains the function.
Package *packages.Package
Provides types.Type
Requires []types.Type
}