Skip to content

Commit fb96603

Browse files
author
a.groshev
committed
refactor
1 parent 900623c commit fb96603

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

application/App.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import (
88

99
type Application struct {
1010
deps []func() *Dependency
11-
List map[string]any
11+
List map[string][]any
1212
Cfg *Config
13-
init map[string]func(cfg *Config, list map[string]any) (any, error)
13+
init map[string]func(cfg *Config, list []any) (any, error)
1414
start map[string]func(cfg *Config, dep any) error
1515
depLists [][]string
1616
depSeq []string
@@ -19,12 +19,12 @@ type Application struct {
1919
type Dependency struct {
2020
name string
2121
deps []string
22-
init func(cfg *Config, list map[string]any) (any, error)
22+
init func(cfg *Config, list []any) (any, error)
2323
start func(cfg *Config, dep any) error
2424
}
2525

2626
func NewDependency(name string, deps []string,
27-
init func(cfg *Config, list map[string]any) (any, error),
27+
init func(cfg *Config, list []any) (any, error),
2828
start func(cfg *Config, dep any) error) *Dependency {
2929
return &Dependency{
3030
name: name,
@@ -37,9 +37,9 @@ func NewDependency(name string, deps []string,
3737
func New() *Application {
3838
return &Application{
3939
deps: make([]func() *Dependency, 0),
40-
List: make(map[string]any),
40+
List: make(map[string][]any),
4141
Cfg: NewConfig(),
42-
init: make(map[string]func(cfg *Config, list map[string]any) (any, error)),
42+
init: make(map[string]func(cfg *Config, list []any) (any, error)),
4343
start: make(map[string]func(cfg *Config, dep any) error),
4444
depLists: [][]string{},
4545
depSeq: []string{},
@@ -68,6 +68,7 @@ func (a *Application) Start() {
6868
}
6969
names = append(names, dependency.name)
7070
deps = append(deps, dependency.deps...)
71+
a.List[dependency.name] = []any{nil, dependency.deps}
7172
}
7273
for _, dep := range deps {
7374
if !slices.Contains(names, dep) {
@@ -77,16 +78,21 @@ func (a *Application) Start() {
7778
BuildInitSeq(a.depLists, &a.depSeq)
7879
for _, name := range a.depSeq {
7980
fmt.Printf("Initializing depndency %s\n", name)
80-
dep, err := a.init[name](a.Cfg, a.List)
81+
depList := a.List[name][1].([]string)
82+
var list []any
83+
for _, dName := range depList {
84+
list = append(list, a.List[dName][0])
85+
}
86+
dep, err := a.init[name](a.Cfg, list)
8187
if err != nil {
8288
fmt.Printf("Error nitializing depndency %s\n", name)
8389
panic(err)
8490
}
85-
a.List[name] = dep
91+
a.List[name][0] = dep
8692
}
8793
for name, start := range a.start {
8894
fmt.Printf("Starting component %s\n", name)
89-
err := start(a.Cfg, a.List[name])
95+
err := start(a.Cfg, a.List[name][0])
9096
if err != nil {
9197
fmt.Printf("Error starting component %s\n", name)
9298
panic(err)

0 commit comments

Comments
 (0)