Files
MonkeyCode/backend/pkg/provider.go
2025-08-19 14:34:01 +08:00

43 lines
1.1 KiB
Go

package pkg
import (
"github.com/google/wire"
"github.com/labstack/echo/v4/middleware"
"golang.org/x/text/language"
"github.com/GoYoko/web"
"github.com/GoYoko/web/locale"
"github.com/chaitin/MonkeyCode/backend/config"
"github.com/chaitin/MonkeyCode/backend/errcode"
mid "github.com/chaitin/MonkeyCode/backend/internal/middleware"
"github.com/chaitin/MonkeyCode/backend/pkg/ipdb"
"github.com/chaitin/MonkeyCode/backend/pkg/logger"
"github.com/chaitin/MonkeyCode/backend/pkg/report"
"github.com/chaitin/MonkeyCode/backend/pkg/session"
"github.com/chaitin/MonkeyCode/backend/pkg/store"
"github.com/chaitin/MonkeyCode/backend/pkg/version"
)
var Provider = wire.NewSet(
NewWeb,
logger.NewLogger,
store.NewEntDB,
store.NewRedisCli,
session.NewSession,
ipdb.NewIPDB,
report.NewReport,
version.NewVersionInfo,
)
func NewWeb(cfg *config.Config) *web.Web {
w := web.New()
l := locale.NewLocalizerWithFile(language.Chinese, errcode.LocalFS, []string{"locale.zh.toml"})
w.SetLocale(l)
w.Use(mid.RequestID())
if cfg.Debug {
w.Use(middleware.Logger())
}
return w
}