Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Module fx.Option = fx.Module( "framework", fx.Provide(func(ev *env.Env) *fm { return &fm{ev} }), fx.Provide(func(ev *env.Env) *CommsGrpcEnv { return &CommsGrpcEnv{ev} }), repos.NewMongoClientFx[*fm](), fx.Provide(func(ev *env.Env, logger *slog.Logger) (*nats.JetstreamClient, error) { name := "auth:jetstream-client" nc, err := nats.NewClient(ev.NatsURL, nats.ClientOpts{ Name: name, Logger: logger, }) if err != nil { return nil, errors.NewE(err) } return nats.NewJetstreamClient(nc) }), fx.Provide( func(ev *env.Env, jc *nats.JetstreamClient) (kv.Repo[*common.AuthSession], error) { cxt := context.TODO() return kv.NewNatsKVRepo[*common.AuthSession](cxt, ev.SessionKVBucket, jc) }, ), fx.Provide(func(e *env.Env, logger logging.Logger) httpServer.Server { corsOrigins := "https://studio.apollographql.com" return httpServer.NewServer(httpServer.ServerArgs{Logger: logger, CorsAllowOrigins: &corsOrigins, IsDev: e.IsDev}) }), fx.Invoke(func(lf fx.Lifecycle, server httpServer.Server, ev *env.Env) { lf.Append(fx.Hook{ OnStart: func(context.Context) error { return server.Listen(fmt.Sprintf(":%d", ev.Port)) }, OnStop: func(context.Context) error { return server.Close() }, }) }), rpc.NewGrpcServerFx[*fm](), rpc.NewGrpcClientFx[*CommsGrpcEnv, app.CommsClientConnection](), app.Module, )
Functions ¶
This section is empty.
Types ¶
type CommsGrpcEnv ¶
func (CommsGrpcEnv) GetGRPCServerURL ¶
func (c CommsGrpcEnv) GetGRPCServerURL() string
Click to show internal directories.
Click to hide internal directories.