package main import ( "fmt" "net/http" "os" "time" "github.com/a-h/templ/examples/counter/db" "github.com/a-h/templ/examples/counter/handlers" "github.com/a-h/templ/examples/counter/services" "github.com/a-h/templ/examples/counter/session" "golang.org/x/exp/slog" ) func main() { log := slog.New(slog.NewJSONHandler(os.Stderr, nil)) s, err := db.NewCountStore(os.Getenv("TABLE_NAME"), os.Getenv("AWS_REGION")) if err != nil { log.Error("failed to create store", slog.Any("error", err)) os.Exit(1) } cs := services.NewCount(log, s) h := handlers.New(log, cs) var secureFlag = true if os.Getenv("SECURE_FLAG") == "false" { secureFlag = false } // Add session middleware. sh := session.NewMiddleware(h, session.WithSecure(secureFlag)) server := &http.Server{ Addr: "localhost:9000", Handler: sh, ReadTimeout: time.Second * 10, WriteTimeout: time.Second * 10, } fmt.Printf("Listening on %v\n", server.Addr) server.ListenAndServe() }