39 lines
653 B
Go

package webui
import (
"net/http"
"github.com/gorilla/sessions"
)
type Options struct {
BaseURL string
SessionStore sessions.Store
Mounts map[string]http.Handler
}
type OptionFunc func(opts *Options)
func NewOptions(funcs ...OptionFunc) *Options {
opts := &Options{
BaseURL: "",
Mounts: make(map[string]http.Handler),
}
for _, fn := range funcs {
fn(opts)
}
return opts
}
func WithBaseURL(baseURL string) OptionFunc {
return func(opts *Options) {
opts.BaseURL = baseURL
}
}
func WithMount(mountpoint string, handler http.Handler) OptionFunc {
return func(opts *Options) {
opts.Mounts[mountpoint] = handler
}
}