load dependencies by name instead of reference
This commit is contained in:
14
module.go
14
module.go
@@ -12,7 +12,7 @@ type Module struct {
|
||||
name string
|
||||
setup setupFn
|
||||
teardown teardownFn
|
||||
depends []*Module
|
||||
depends []string
|
||||
}
|
||||
|
||||
// ModuleOpts contains user-exposed options when defining a module.
|
||||
@@ -21,8 +21,9 @@ type ModuleOpts struct {
|
||||
Setup setupFn
|
||||
// Teardown is the teardown function for the module.
|
||||
Teardown teardownFn
|
||||
// Depends is a list of modules that this module depends on.
|
||||
Depends []*Module
|
||||
// Depends is a list of modules that this module depends on. Each entry must
|
||||
// be the exact name of a module registered in the lifecycle.
|
||||
Depends []string
|
||||
}
|
||||
|
||||
// NewModule creates a new Module instance with the given name and options.
|
||||
@@ -38,7 +39,7 @@ func NewModule(name string, opts ModuleOpts) *Module {
|
||||
// Logger returns the logger for the module.
|
||||
func (s *Module) Logger() *slog.Logger {
|
||||
if s.logger == nil {
|
||||
panic(fmt.Sprintf("subsytem %s used before logger was initialized", s.name))
|
||||
panic(fmt.Sprintf("module %s used before logger was initialized", s.name))
|
||||
}
|
||||
return s.logger
|
||||
}
|
||||
@@ -47,8 +48,3 @@ func (s *Module) Logger() *slog.Logger {
|
||||
func (s *Module) Name() string {
|
||||
return s.name
|
||||
}
|
||||
|
||||
// ModuleList is a convenience function that creates a slice of modules.
|
||||
func ModuleList(modules ...*Module) []*Module {
|
||||
return modules
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user