Skip to content

Instantly share code, notes, and snippets.

View presmihaylov's full-sized avatar

Pres Mihaylov presmihaylov

View GitHub Profile
// example continued
// Module provided to fx
var Module = fx.Options(
fx.Provide(ProvideConfig),
)
...
func main() {
fx.New(
configfx.Module,
...
).Run()
}
...
// ProvideLogger to fx
func ProvideLogger() *zap.SugaredLogger {
logger, _ := zap.NewProduction()
slogger := logger.Sugar()
return slogger
}
func main() {
package loggerfx
// imports
// ProvideLogger to fx
func ProvideLogger() *zap.SugaredLogger {
logger, _ := zap.NewProduction()
slogger := logger.Sugar()
return slogger
...
func main() {
fx.New(
configfx.Module,
loggerfx.Module,
...
).Run()
}
...
func main() {
fx.New(
...
fx.Provide(http.NewServeMux),
...
).Run()
}
package httpfx
// imports
// Module provided to fx
var Module = fx.Options(
fx.Provide(http.NewServeMux),
)
package main
// imports
func main() {
fx.New(
configfx.Module,
loggerfx.Module,
httpfx.Module,
fx.Invoke(httphandler.New),
package bundlefx
// imports
func registerHooks(
lifecycle fx.Lifecycle,
logger *zap.SugaredLogger, cfg *configfx.Config, mux *http.ServeMux,
) {
lifecycle.Append(
fx.Hook{
package main
// imports
func main() {
fx.New(
bundlefx.Module,
fx.Invoke(httphandler.New),
).Run()
}