40 lines
803 B
Go
40 lines
803 B
Go
//go:build wireinject
|
|
|
|
package main
|
|
|
|
import (
|
|
"github.com/google/wire"
|
|
|
|
"github.com/chaitin/panda-wiki/config"
|
|
share "github.com/chaitin/panda-wiki/handler/share"
|
|
v1 "github.com/chaitin/panda-wiki/handler/v1"
|
|
"github.com/chaitin/panda-wiki/log"
|
|
"github.com/chaitin/panda-wiki/server/http"
|
|
"github.com/chaitin/panda-wiki/telemetry"
|
|
)
|
|
|
|
func createApp() (*App, error) {
|
|
wire.Build(
|
|
wire.Struct(new(App), "*"),
|
|
wire.NewSet(
|
|
config.ProviderSet,
|
|
log.ProviderSet,
|
|
telemetry.ProviderSet,
|
|
|
|
http.ProviderSet,
|
|
v1.ProviderSet,
|
|
share.ProviderSet,
|
|
),
|
|
)
|
|
return &App{}, nil
|
|
}
|
|
|
|
type App struct {
|
|
HTTPServer *http.HTTPServer
|
|
Handlers *v1.APIHandlers
|
|
ShareHandlers *share.ShareHandler
|
|
Config *config.Config
|
|
Logger *log.Logger
|
|
Telemetry *telemetry.Client
|
|
}
|