tijl.dev-core/modules/web/app.go
tijl b8d7a8c4cf
All checks were successful
build / build (push) Successful in 36s
release-tag / release-image (push) Successful in 16m28s
basic app implementation
2024-08-25 17:43:55 +02:00

40 lines
886 B
Go

package web
import (
"sort"
log "git.tijl.dev/tijl/tijl.dev-core/modules/logger"
"github.com/gofiber/fiber/v2"
)
/*
Basic system for being able to add routes from other packages
*/
type setupFuncWithPriority struct {
function func(*fiber.App)
priority int
}
var setupFuncs []setupFuncWithPriority
func RegisterAppSetupFunc(function func(*fiber.App), priority int) {
log.Debug().Msg("web.RegisterAppSetupFunc: registered a function")
setupFuncs = append(setupFuncs, setupFuncWithPriority{
function: function,
priority: priority,
})
}
// Setup executes all registered functions in order of priority
func Setup(app *fiber.App) {
sort.SliceStable(setupFuncs, func(i, j int) bool {
return setupFuncs[i].priority > setupFuncs[j].priority
})
for _, setupFunc := range setupFuncs {
// log.Debug().Msg("web.Setup: executing a function")
setupFunc.function(app)
}
}