Skip to content

Commit

Permalink
Merge pull request #3 from ThomasTJdev/startup
Browse files Browse the repository at this point in the history
Startup
  • Loading branch information
ThomasTJdev authored Jan 20, 2024
2 parents 189234f + ad0974c commit 6af5231
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
14 changes: 11 additions & 3 deletions jester.nim
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,14 @@ type
of RouteCode:
data: ResponseData

Startup = proc () {.closure, gcsafe.}

const jesterVer = "0.6.0"

proc doNothing(): Startup {.gcsafe.} =
result = proc () {.closure, gcsafe.} =
discard

proc toStr(headers: Option[RawHeaders]): string =
return $newHttpHeaders(headers.get(@({:})))

Expand Down Expand Up @@ -421,7 +427,8 @@ proc handleRequest(jes: Jester, httpReq: NativeRequest): Future[void] =
proc newSettings*(
port = Port(5000), staticDir = getCurrentDir() / "public",
appName = "", bindAddr = "", reusePort = false, maxBody = 8388608, numThreads = 0,
futureErrorHandler: proc (fut: Future[void]) {.closure, gcsafe.} = nil
futureErrorHandler: proc (fut: Future[void]) {.closure, gcsafe.} = nil,
startup: Startup = doNothing()
): Settings =
result = Settings(
staticDir: normalizedPath(staticDir),
Expand All @@ -431,7 +438,8 @@ proc newSettings*(
reusePort: reusePort,
maxBody: maxBody,
numThreads: numThreads,
futureErrorHandler: futureErrorHandler
futureErrorHandler: futureErrorHandler,
startup: startup
)

proc register*(self: var Jester, matcher: MatchProc) =
Expand Down Expand Up @@ -529,7 +537,7 @@ proc serve*(
proc (req: httpbeast.Request): Future[void] =
{.gcsafe.}:
result = handleRequest(jes, req),
httpbeast.initSettings(self.settings.port, self.settings.bindAddr, self.settings.numThreads)
httpbeast.initSettings(self.settings.port, self.settings.bindAddr, self.settings.numThreads, startup = self.settings.startup)
)
else:
self.httpServer = newAsyncHttpServer(reusePort=self.settings.reusePort, maxBody=self.settings.maxBody)
Expand Down
1 change: 1 addition & 0 deletions jester/private/utils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ type
maxBody*: int
futureErrorHandler*: proc (fut: Future[void]) {.closure, gcsafe.}
numThreads*: int # Only available with Httpbeast (`useHttpBeast = true`)
startup*: proc () {.closure, gcsafe.} # Only available with Httpbeast (`useHttpBeast = true`)

JesterError* = object of Exception

Expand Down

0 comments on commit 6af5231

Please sign in to comment.