services

package
v0.1.148 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2024 License: MIT Imports: 22 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ErrorMessage added in v0.1.89

func ErrorMessage(err error, msg string, args ...any) string

func KustomizeOutput added in v0.1.75

func KustomizeOutput() *builderv0.DeploymentOutput

func NOOP added in v0.1.20

func NOOP() *runtimev0.DesiredState

func NetworkInstanceForRestRouteGroup added in v0.1.82

func NetworkInstanceForRestRouteGroup(ctx context.Context, mappings []*basev0.NetworkMapping, group *resources.RestRouteGroup, networkAccess *basev0.NetworkAccess) (*basev0.NetworkInstance, error)

NetworkInstanceForRestRouteGroup finds the proper network mapping for a given REST route group

func NewBuilderAgent added in v0.1.20

func NewBuilderAgent(conf *resources.Agent, builder Builder) agents.AgentImplementation

func NewRuntimeAgent added in v0.0.26

func NewRuntimeAgent(conf *resources.Agent, runtime Runtime) agents.AgentImplementation

func NewServiceAgent added in v0.0.51

func NewServiceAgent(conf *resources.Agent, service Agent) agents.AgentImplementation

NewServiceAgent binds the Agent implementation to the Agent

Types

type Agent added in v0.0.51

type Agent interface {
	GetAgentInformation(ctx context.Context, req *agentv0.AgentInformationRequest) (*agentv0.AgentInformation, error)
}

type Base added in v0.0.26

type Base struct {
	// Agent
	Agent *resources.Agent
	Wool  *wool.Wool

	// Service logger
	Logger *wool.Wool

	// State
	Identity *resources.ServiceIdentity

	// Location of the service
	Location string

	// codefly configuration
	ConfigurationLocation string

	Service *resources.Service

	Environment *basev0.Environment

	// Information convenience
	Information *Information

	// Endpoints
	Endpoints           []*basev0.Endpoint
	DependencyEndpoints []*basev0.Endpoint

	NetworkMappings []*basev0.NetworkMapping

	// EnvironmentVariables
	EnvironmentVariables *resources.EnvironmentVariableManager

	// Configuration
	Configuration           *basev0.Configuration
	WorkspaceConfigurations []*basev0.Configuration

	// Wrappers
	Runtime *RuntimeWrapper
	Builder *BuilderWrapper

	// Runtime
	State InformationStatus

	// Communication
	Communication *communicate.Server

	// Code Watcher
	Watcher *code.Watcher
	Events  chan code.Change
	// contains filtered or unexported fields
}

func NewServiceBase added in v0.0.26

func NewServiceBase(ctx context.Context, agent *resources.Agent) *Base

func (*Base) BaseEndpoint added in v0.1.127

func (s *Base) BaseEndpoint(api string) *resources.Endpoint

func (*Base) Communicate added in v0.0.26

func (s *Base) Communicate(ctx context.Context, eng *agentv0.Engage) (*agentv0.InformationRequest, error)

func (*Base) DockerImage added in v0.0.31

func (s *Base) DockerImage(req *builderv0.DockerBuildContext) *resources.DockerImage

func (*Base) Errorf added in v0.0.28

func (s *Base) Errorf(format string, args ...any) error

func (*Base) HeadlessLoad added in v0.1.50

func (s *Base) HeadlessLoad(ctx context.Context, identity *basev0.ServiceIdentity) error

func (*Base) Infof added in v0.1.89

func (s *Base) Infof(msg string, args ...any)

func (*Base) Load added in v0.0.72

func (s *Base) Load(ctx context.Context, identity *basev0.ServiceIdentity, settings any) error

func (*Base) Local added in v0.0.26

func (s *Base) Local(f string, args ...any) string

func (*Base) LocalDirCreate added in v0.1.39

func (s *Base) LocalDirCreate(ctx context.Context, f string, args ...any) (string, error)

func (*Base) Ready added in v0.0.72

func (s *Base) Ready()

func (*Base) SetDefaultDockerImage added in v0.1.124

func (s *Base) SetDefaultDockerImage(req *builderv0.DockerBuildContext)

func (*Base) SetDockerImage added in v0.1.124

func (s *Base) SetDockerImage(image *resources.DockerImage)

func (*Base) SetupWatcher added in v0.0.26

func (s *Base) SetupWatcher(ctx context.Context, conf *WatchConfiguration, handler func(event code.Change) error) error

func (*Base) Stop added in v0.0.26

func (s *Base) Stop() error

func (*Base) Templates added in v0.0.26

func (s *Base) Templates(ctx context.Context, obj any, wrappers ...*TemplateWrapper) error

func (*Base) Unique added in v0.1.6

func (s *Base) Unique() string

func (*Base) UniqueWithWorkspace added in v0.1.89

func (s *Base) UniqueWithWorkspace() string

func (*Base) Version added in v0.0.26

func (s *Base) Version() *basev0.Version

func (*Base) WantSync added in v0.0.26

func (s *Base) WantSync()

type Builder added in v0.1.20

type BuilderAgent added in v0.1.20

type BuilderAgent struct {
	Client      builderv0.BuilderClient
	Agent       *resources.Agent
	ProcessInfo *manager.ProcessInfo
}

func (BuilderAgent) Build added in v0.1.20

func (BuilderAgent) Communicate added in v0.1.20

func (BuilderAgent) Create added in v0.1.20

func (BuilderAgent) Deploy added in v0.1.20

func (BuilderAgent) Init added in v0.1.20

func (BuilderAgent) Load added in v0.1.20

func (BuilderAgent) Sync added in v0.1.20

func (BuilderAgent) Update added in v0.1.20

type BuilderAgentGRPC added in v0.1.20

type BuilderAgentGRPC struct {
	// GRPCAgent must still implement the ServiceAgent interface
	plugin.Plugin
	Builder Builder
}

func (*BuilderAgentGRPC) GRPCClient added in v0.1.20

func (p *BuilderAgentGRPC) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

func (*BuilderAgentGRPC) GRPCServer added in v0.1.20

func (p *BuilderAgentGRPC) GRPCServer(_ *plugin.GRPCBroker, s *grpc.Server) error

type BuilderServer added in v0.1.20

type BuilderServer struct {
	builderv0.UnimplementedBuilderServer
	Builder Builder
}

BuilderServer wraps the gRPC protocol Request/Response

func (*BuilderServer) Build added in v0.1.20

func (*BuilderServer) Communicate added in v0.1.20

func (*BuilderServer) Create added in v0.1.20

func (*BuilderServer) Deploy added in v0.1.20

func (*BuilderServer) Init added in v0.1.20

func (*BuilderServer) Load added in v0.1.20

func (*BuilderServer) Sync added in v0.1.20

func (*BuilderServer) Update added in v0.1.20

type BuilderWrapper added in v0.1.20

type BuilderWrapper struct {
	*Base

	BuildResult  *builderv0.BuildResult
	DeployOutput *builderv0.DeploymentOutput

	GettingStarted string

	CreationMode *builderv0.CreationMode
	SyncMode     *builderv0.SyncMode
}

func (*BuilderWrapper) BuildError added in v0.1.20

func (s *BuilderWrapper) BuildError(err error) (*builderv0.BuildResponse, error)

func (*BuilderWrapper) BuildResponse added in v0.1.20

func (s *BuilderWrapper) BuildResponse() (*builderv0.BuildResponse, error)

func (*BuilderWrapper) CreateError added in v0.1.20

func (s *BuilderWrapper) CreateError(err error) (*builderv0.CreateResponse, error)

func (*BuilderWrapper) CreateErrorf added in v0.1.89

func (s *BuilderWrapper) CreateErrorf(err error, msg string, args ...any) (*builderv0.CreateResponse, error)

func (*BuilderWrapper) CreateKubernetesBase added in v0.1.74

func (s *BuilderWrapper) CreateKubernetesBase(_ context.Context, env *basev0.Environment, namespace string, builderContext *builderv0.DockerBuildContext) (*DeploymentBase, error)

func (*BuilderWrapper) CreateResponse added in v0.1.20

func (s *BuilderWrapper) CreateResponse(ctx context.Context, settings any) (*builderv0.CreateResponse, error)

func (*BuilderWrapper) DeployError added in v0.1.20

func (s *BuilderWrapper) DeployError(err error) (*builderv0.DeploymentResponse, error)

func (*BuilderWrapper) DeployResponse added in v0.1.20

func (s *BuilderWrapper) DeployResponse() (*builderv0.DeploymentResponse, error)

func (*BuilderWrapper) DockerBuildRequest added in v0.1.74

func (*BuilderWrapper) GenerateGenericKustomize added in v0.1.60

func (s *BuilderWrapper) GenerateGenericKustomize(ctx context.Context, fs embed.FS, k *builderv0.KubernetesDeployment, base *DeploymentBase, params any) error

func (*BuilderWrapper) InitError added in v0.1.20

func (s *BuilderWrapper) InitError(err error) (*builderv0.InitResponse, error)

func (*BuilderWrapper) InitErrorf added in v0.1.89

func (s *BuilderWrapper) InitErrorf(err error, msg string, args ...any) (*builderv0.InitResponse, error)

func (*BuilderWrapper) InitResponse added in v0.1.20

func (s *BuilderWrapper) InitResponse() (*builderv0.InitResponse, error)

func (*BuilderWrapper) KubernetesDeploymentRequest added in v0.1.74

func (s *BuilderWrapper) KubernetesDeploymentRequest(_ context.Context, req *builderv0.DeploymentRequest) (*builderv0.KubernetesDeployment, error)

func (*BuilderWrapper) KustomizeDeploy added in v0.1.74

func (s *BuilderWrapper) KustomizeDeploy(ctx context.Context, env *basev0.Environment, req *builderv0.KubernetesDeployment, fs embed.FS, params any) error

func (*BuilderWrapper) LoadError added in v0.1.20

func (s *BuilderWrapper) LoadError(err error) (*builderv0.LoadResponse, error)

func (*BuilderWrapper) LoadErrorf added in v0.1.89

func (s *BuilderWrapper) LoadErrorf(err error, msg string, args ...any) (*builderv0.LoadResponse, error)

func (*BuilderWrapper) LoadResponse added in v0.1.20

func (s *BuilderWrapper) LoadResponse() (*builderv0.LoadResponse, error)

func (*BuilderWrapper) LogDeployRequest added in v0.1.64

func (s *BuilderWrapper) LogDeployRequest(req *builderv0.DeploymentRequest, log wool.LogFunc)

func (*BuilderWrapper) LogInitRequest added in v0.1.64

func (s *BuilderWrapper) LogInitRequest(req *builderv0.InitRequest)

func (*BuilderWrapper) SyncError added in v0.1.20

func (s *BuilderWrapper) SyncError(err error) (*builderv0.SyncResponse, error)

func (*BuilderWrapper) SyncResponse added in v0.1.20

func (s *BuilderWrapper) SyncResponse() (*builderv0.SyncResponse, error)

func (*BuilderWrapper) UpdateError added in v0.1.50

func (s *BuilderWrapper) UpdateError(err error) (*builderv0.UpdateResponse, error)

func (*BuilderWrapper) UpdateResponse added in v0.1.50

func (s *BuilderWrapper) UpdateResponse() (*builderv0.UpdateResponse, error)

func (*BuilderWrapper) WithDockerImages added in v0.1.74

func (s *BuilderWrapper) WithDockerImages(ims ...*resources.DockerImage)

type DeploymentBase added in v0.1.20

type DeploymentBase struct {
	*Information
	Sha         string
	Namespace   string
	Environment *resources.Environment
	Image       *resources.DockerImage
	Replicas    int

	// Specialization
	Parameters any
}

type DeploymentParameters added in v0.1.60

type DeploymentParameters struct {
	ConfigMap  EnvironmentMap
	SecretMap  EnvironmentMap
	Parameters any
}

type DeploymentWrapper added in v0.1.20

type DeploymentWrapper struct {
	*DeploymentBase
	Deployment any
}

type EnvironmentMap added in v0.1.33

type EnvironmentMap map[string]string

func EnvsAsConfigMapData added in v0.1.33

func EnvsAsConfigMapData(envs ...*resources.EnvironmentVariable) (EnvironmentMap, error)

func EnvsAsSecretData added in v0.1.33

func EnvsAsSecretData(envs ...*resources.EnvironmentVariable) (EnvironmentMap, error)

type Information added in v0.0.26

type Information struct {
	Service *resources.ServiceWithCase
	Module  *resources.ModuleWithCase
	Agent   *resources.Agent
}

type InformationStatus added in v0.0.26

type InformationStatus struct {
	Load  *runtimev0.LoadStatus
	Init  *runtimev0.InitStatus
	Start *runtimev0.StartStatus

	DesiredState *runtimev0.DesiredState
}

type Parameters added in v0.1.60

type Parameters struct {
	Values map[string]string
}

type Runtime added in v0.0.51

type Runtime interface {
	// Load loads the service: it is a NoOp operation and can be called safely
	Load(ctx context.Context, req *runtimev0.LoadRequest) (*runtimev0.LoadResponse, error)

	// Init initializes the service: can include steps like compilation, etc...
	Init(ctx context.Context, req *runtimev0.InitRequest) (*runtimev0.InitResponse, error)

	// Start the underlying service
	Start(ctx context.Context, req *runtimev0.StartRequest) (*runtimev0.StartResponse, error)

	Stop(ctx context.Context, req *runtimev0.StopRequest) (*runtimev0.StopResponse, error)

	Destroy(ctx context.Context, req *runtimev0.DestroyRequest) (*runtimev0.DestroyResponse, error)

	Test(ctx context.Context, req *runtimev0.TestRequest) (*runtimev0.TestResponse, error)

	Information(ctx context.Context, req *runtimev0.InformationRequest) (*runtimev0.InformationResponse, error)

	// Communicate is a special method that is used to communicate with the Agent
	communicate.Communicate
}

type RuntimeAgent added in v0.0.51

type RuntimeAgent struct {
	Client      runtimev0.RuntimeClient
	Agent       *resources.Agent
	ProcessInfo *manager.ProcessInfo

	// Some service can deal with re-init without restarting
	HotReload bool
}

func (*RuntimeAgent) Communicate added in v0.0.51

func (m *RuntimeAgent) Communicate(ctx context.Context, req *agentv0.Engage) (*agentv0.InformationRequest, error)

Communicate helper

func (*RuntimeAgent) Destroy added in v0.1.89

Destroy Destroys the service

func (*RuntimeAgent) Information added in v0.0.51

Information return some useful information about the service

func (*RuntimeAgent) Init added in v0.0.51

Init initializes the service

func (*RuntimeAgent) Load added in v0.0.72

Load loads the service: it is a NoOp operation and can be called safely

func (*RuntimeAgent) Start added in v0.0.51

Start starts the service

func (*RuntimeAgent) Stop added in v0.0.51

Stop stops the service

func (*RuntimeAgent) Test added in v0.1.74

Test tests the service

type RuntimeAgentGRPC added in v0.0.51

type RuntimeAgentGRPC struct {
	// GRPCAgent must still implement the ServiceAgent interface
	plugin.Plugin
	Runtime Runtime
}

func (*RuntimeAgentGRPC) GRPCClient added in v0.0.51

func (p *RuntimeAgentGRPC) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

func (*RuntimeAgentGRPC) GRPCServer added in v0.0.51

func (p *RuntimeAgentGRPC) GRPCServer(_ *plugin.GRPCBroker, s *grpc.Server) error

type RuntimeServer added in v0.0.26

type RuntimeServer struct {
	runtimev0.UnimplementedRuntimeServer
	Runtime Runtime
}

RuntimeServer wraps the gRPC protocol Request/Response

func (*RuntimeServer) Communicate added in v0.0.26

func (*RuntimeServer) Destroy added in v0.1.89

func (*RuntimeServer) Information added in v0.0.26

func (*RuntimeServer) Init added in v0.0.26

func (*RuntimeServer) Load added in v0.0.72

func (*RuntimeServer) Start added in v0.0.26

func (*RuntimeServer) Stop added in v0.0.26

func (*RuntimeServer) Test added in v0.1.74

type RuntimeWrapper added in v0.0.72

type RuntimeWrapper struct {
	*Base

	RuntimeContext *basev0.RuntimeContext

	RuntimeConfigurations []*basev0.Configuration

	LoadStatus    *runtimev0.LoadStatus
	InitStatus    *runtimev0.InitStatus
	StartStatus   *runtimev0.StartStatus
	StopStatus    *runtimev0.StopStatus
	DestroyStatus *runtimev0.DestroyStatus

	TestStatus *runtimev0.TestStatus

	DesiredState *runtimev0.DesiredState

	sync.RWMutex
}

func (*RuntimeWrapper) DesiredInit added in v0.1.20

func (s *RuntimeWrapper) DesiredInit()

func (*RuntimeWrapper) DesiredLoad added in v0.1.20

func (s *RuntimeWrapper) DesiredLoad()

func (*RuntimeWrapper) DesiredStart added in v0.1.20

func (s *RuntimeWrapper) DesiredStart()

func (*RuntimeWrapper) DestroyError added in v0.1.89

func (s *RuntimeWrapper) DestroyError(err error) (*runtimev0.DestroyResponse, error)

func (*RuntimeWrapper) DestroyErrorf added in v0.1.89

func (s *RuntimeWrapper) DestroyErrorf(err error, msg string, args ...any) (*runtimev0.DestroyResponse, error)

func (*RuntimeWrapper) DestroyResponse added in v0.1.89

func (s *RuntimeWrapper) DestroyResponse() (*runtimev0.DestroyResponse, error)

func (*RuntimeWrapper) InformationResponse added in v0.0.75

func (*RuntimeWrapper) InitError added in v0.0.72

func (s *RuntimeWrapper) InitError(err error) (*runtimev0.InitResponse, error)

func (*RuntimeWrapper) InitErrorf added in v0.1.89

func (s *RuntimeWrapper) InitErrorf(err error, msg string, args ...any) (*runtimev0.InitResponse, error)

func (*RuntimeWrapper) InitResponse added in v0.0.72

func (s *RuntimeWrapper) InitResponse() (*runtimev0.InitResponse, error)

func (*RuntimeWrapper) IsContainerRuntime added in v0.1.89

func (s *RuntimeWrapper) IsContainerRuntime() bool

func (*RuntimeWrapper) LoadError added in v0.0.72

func (s *RuntimeWrapper) LoadError(err error) (*runtimev0.LoadResponse, error)

func (*RuntimeWrapper) LoadErrorf added in v0.1.89

func (s *RuntimeWrapper) LoadErrorf(err error, msg string, args ...any) (*runtimev0.LoadResponse, error)

func (*RuntimeWrapper) LoadResponse added in v0.0.72

func (s *RuntimeWrapper) LoadResponse() (*runtimev0.LoadResponse, error)

func (*RuntimeWrapper) LogInitRequest added in v0.1.63

func (s *RuntimeWrapper) LogInitRequest(req *runtimev0.InitRequest)

func (*RuntimeWrapper) LogLoadRequest added in v0.1.89

func (s *RuntimeWrapper) LogLoadRequest(req *runtimev0.LoadRequest)

func (*RuntimeWrapper) LogStartRequest added in v0.1.64

func (s *RuntimeWrapper) LogStartRequest(req *runtimev0.StartRequest)

func (*RuntimeWrapper) SetEnvironment added in v0.1.89

func (s *RuntimeWrapper) SetEnvironment(environment *basev0.Environment)

func (*RuntimeWrapper) StartError added in v0.0.72

func (s *RuntimeWrapper) StartError(err error) (*runtimev0.StartResponse, error)

func (*RuntimeWrapper) StartErrorf added in v0.1.89

func (s *RuntimeWrapper) StartErrorf(err error, msg string, args ...any) (*runtimev0.StartResponse, error)

func (*RuntimeWrapper) StartResponse added in v0.0.72

func (s *RuntimeWrapper) StartResponse() (*runtimev0.StartResponse, error)

func (*RuntimeWrapper) StopError added in v0.1.24

func (s *RuntimeWrapper) StopError(err error) (*runtimev0.StopResponse, error)

func (*RuntimeWrapper) StopErrorf added in v0.1.89

func (s *RuntimeWrapper) StopErrorf(err error, msg string, args ...any) (*runtimev0.StopResponse, error)

func (*RuntimeWrapper) StopResponse added in v0.1.24

func (s *RuntimeWrapper) StopResponse() (*runtimev0.StopResponse, error)

func (*RuntimeWrapper) TestError added in v0.1.89

func (s *RuntimeWrapper) TestError(err error) (*runtimev0.TestResponse, error)

func (*RuntimeWrapper) TestErrorf added in v0.1.89

func (s *RuntimeWrapper) TestErrorf(err error, msg string, args ...any) (*runtimev0.TestResponse, error)

func (*RuntimeWrapper) TestResponse added in v0.1.89

func (s *RuntimeWrapper) TestResponse() (*runtimev0.TestResponse, error)

func (*RuntimeWrapper) WithContext added in v0.1.89

func (s *RuntimeWrapper) WithContext(runtimeContext *basev0.RuntimeContext)

type ServiceAgent added in v0.0.51

type ServiceAgent struct {
	Client      agentv0.AgentClient
	Agent       *resources.Agent
	ProcessInfo *manager.ProcessInfo
}

func (*ServiceAgent) GetAgentInformation added in v0.0.51

GetAgentInformation provides - capabilities

type ServiceAgentContext added in v0.0.51

type ServiceAgentContext struct {
}

func (ServiceAgentContext) Default added in v0.0.51

func (m ServiceAgentContext) Default() plugin.Plugin

func (ServiceAgentContext) Key added in v0.0.51

func (m ServiceAgentContext) Key(p *resources.Agent, unique string) string

type ServiceAgentGRPC added in v0.0.51

type ServiceAgentGRPC struct {
	// GRPCAgent must still implement the ServiceAgent interface
	plugin.Plugin
	Service Agent
}

func (*ServiceAgentGRPC) GRPCClient added in v0.0.51

func (p *ServiceAgentGRPC) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

func (*ServiceAgentGRPC) GRPCServer added in v0.0.51

func (p *ServiceAgentGRPC) GRPCServer(_ *plugin.GRPCBroker, s *grpc.Server) error

type ServiceAgentServer added in v0.0.51

type ServiceAgentServer struct {
	agentv0.UnimplementedAgentServer
	Service Agent
}

ServiceAgentServer wraps the gRPC protocol Request/Response

func (*ServiceAgentServer) GetAgentInformation added in v0.0.51

type ServiceBuilderAgentContext added in v0.1.20

type ServiceBuilderAgentContext struct {
}

func (ServiceBuilderAgentContext) Default added in v0.1.20

func (m ServiceBuilderAgentContext) Default() plugin.Plugin

func (ServiceBuilderAgentContext) Key added in v0.1.20

type ServiceRuntimeAgentContext added in v0.0.26

type ServiceRuntimeAgentContext struct {
}

func (ServiceRuntimeAgentContext) Default added in v0.0.26

func (m ServiceRuntimeAgentContext) Default() plugin.Plugin

func (ServiceRuntimeAgentContext) Key added in v0.0.26

type TemplateWrapper added in v0.0.26

type TemplateWrapper struct {
	PathSelect shared.PathSelect
	Override   shared.Override
	// contains filtered or unexported fields
}

func WithBuilder added in v0.0.26

func WithBuilder(fs embed.FS) *TemplateWrapper

func WithDeployment added in v0.0.26

func WithDeployment(fs embed.FS, sub string) *TemplateWrapper

func WithFactory added in v0.0.26

func WithFactory(fs embed.FS) *TemplateWrapper

func WithTemplate added in v0.1.20

func WithTemplate(fs embed.FS, from string, to string) *TemplateWrapper

func (*TemplateWrapper) Destination added in v0.1.20

func (wrapper *TemplateWrapper) Destination(s *Base) string

func (*TemplateWrapper) WithDestination added in v0.1.20

func (wrapper *TemplateWrapper) WithDestination(destination string, args ...any) *TemplateWrapper

func (*TemplateWrapper) WithOverride added in v0.1.18

func (wrapper *TemplateWrapper) WithOverride(override shared.Override) *TemplateWrapper

func (*TemplateWrapper) WithPathSelect added in v0.1.20

func (wrapper *TemplateWrapper) WithPathSelect(pathSelect shared.PathSelect) *TemplateWrapper

type WatchConfiguration added in v0.0.26

type WatchConfiguration struct {
	// contains filtered or unexported fields
}

func NewWatchConfiguration added in v0.0.26

func NewWatchConfiguration(dependencies *builders.Dependencies) *WatchConfiguration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL