From d6cd0bc54472fe0df0fcdc240b7d9908ef832682 Mon Sep 17 00:00:00 2001 From: bung87 Date: Sun, 6 Aug 2023 16:49:23 +0800 Subject: [PATCH 1/3] add startup callback to settings for httpbeast --- jester.nim | 14 +++++++++++--- jester/private/utils.nim | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/jester.nim b/jester.nim index 56ac739..6950a3f 100644 --- a/jester.nim +++ b/jester.nim @@ -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(@({:}))) @@ -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), @@ -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) = @@ -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) diff --git a/jester/private/utils.nim b/jester/private/utils.nim index 30684fa..799d6e7 100644 --- a/jester/private/utils.nim +++ b/jester/private/utils.nim @@ -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 From 8851d5c4dfcafa4316c2cc3428a21b2053979905 Mon Sep 17 00:00:00 2001 From: bung87 Date: Wed, 16 Aug 2023 03:27:44 +0800 Subject: [PATCH 2/3] ci --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 83bb95f..0f241b9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,7 +26,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - nimversion: ${{ matrix.nimversion }} + version: ${{ matrix.nimversion }} - name: Test run: | nimble test From dd857ccb2e8000034a402966badd0ecfc03950b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20T=2E=20Jarl=C3=B8v?= Date: Sun, 20 Aug 2023 12:50:20 +0200 Subject: [PATCH 3/3] Fix CI --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0f241b9..8aeca4c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: matrix: nimversion: - 1.4.8 - - git:6b97889f44d06f66 + - 1.6.0 os: - ubuntu-latest - macOS-latest @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v1 with: submodules: true - - uses: iffy/install-nim@v3.2.0 + - uses: iffy/install-nim@v4 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: