/
module.go
47 lines (42 loc) · 1016 Bytes
/
module.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package prune
import (
"context"
"go.uber.org/fx"
"github.com/celestiaorg/celestia-node/nodebuilder/node"
"github.com/celestiaorg/celestia-node/pruner"
"github.com/celestiaorg/celestia-node/pruner/archival"
"github.com/celestiaorg/celestia-node/pruner/light"
)
func ConstructModule(tp node.Type) fx.Option {
baseComponents := fx.Options(
fx.Provide(fx.Annotate(
pruner.NewService,
fx.OnStart(func(ctx context.Context, p *pruner.Service) error {
return p.Start(ctx)
}),
fx.OnStop(func(ctx context.Context, p *pruner.Service) error {
return p.Stop(ctx)
}),
)),
)
switch tp {
case node.Full, node.Bridge:
return fx.Module("prune",
baseComponents,
fx.Provide(func() pruner.Pruner {
return archival.NewPruner()
}),
fx.Supply(archival.Window),
)
case node.Light:
return fx.Module("prune",
baseComponents,
fx.Provide(func() pruner.Pruner {
return light.NewPruner()
}),
fx.Supply(light.Window),
)
default:
panic("unknown node type")
}
}