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) } }