parent
bcb9d77de0
commit
d9ab404cf2
@ -0,0 +1,35 @@ |
||||
package renderer |
||||
|
||||
import ( |
||||
"sync" |
||||
|
||||
routing "github.com/jackwhelpton/fasthttp-routing/v2" |
||||
"github.com/valyala/fasthttp" |
||||
) |
||||
|
||||
// Renderer is the main handler that contains all routes handlers
|
||||
type Renderer struct { |
||||
Base string |
||||
|
||||
router *routing.Router |
||||
handler fasthttp.RequestHandler |
||||
|
||||
initOnce sync.Once |
||||
} |
||||
|
||||
// Handler invokes the lazy once-initializer and then does the request
|
||||
func (r *Renderer) Handler(ctx *fasthttp.RequestCtx) { |
||||
r.initOnce.Do(r.init) |
||||
r.handler(ctx) |
||||
} |
||||
|
||||
// init has the renderer initialization
|
||||
func (r *Renderer) init() { |
||||
|
||||
router := routing.New() |
||||
|
||||
router.Use(r.useTemplateWriter) |
||||
|
||||
r.router = router |
||||
r.handler = router.HandleRequest |
||||
} |
Loading…
Reference in new issue