From 8529b7fee4efa31b9eadb515bde02f57e42ad841 Mon Sep 17 00:00:00 2001 From: Konstantin Knyazev <29006524+sckv@users.noreply.github.com> Date: Sat, 27 Dec 2025 20:11:40 +0100 Subject: [PATCH] feat: add https options to the server --- src/server.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/server.ts b/src/server.ts index 99d3908..89069dd 100644 --- a/src/server.ts +++ b/src/server.ts @@ -20,6 +20,7 @@ import { generateRouteSchema } from './schemas/generator.js'; import dns from 'dns'; import { createServer, IncomingMessage, ServerResponse, Server } from 'http'; +import { createServer as createServerHTTPS, ServerOptions as ServerHTTPSOptions } from 'https'; type Middleware = (flow: BareRequest) => Promise | void; type Handler = (flow: BareRequest) => any; @@ -109,6 +110,10 @@ type BareOptions = { * Enable Cors */ cors?: boolean | CorsOptions; + /** + * Custom HTTPS options for the server + */ + httpsOptions?: ServerHTTPSOptions; }; type ExtractRouteParams = T extends `${string}:${infer Param}/${infer Rest}` @@ -162,7 +167,11 @@ export class BareServer { constructor(private bareOptions: BareOptions = {}) { // init - this.server = createServer(this.#listener.bind(this)); + if (bareOptions.httpsOptions) { + this.server = createServerHTTPS(bareOptions.httpsOptions, this.#onRequest); + } else { + this.server = createServer(this.#onRequest); + } this.attachGracefulHandlers(); this.attachRoutesDeclarator(); this.applyLaunchOptions(); @@ -192,6 +201,7 @@ export class BareServer { }); }; + #onRequest = this.#listener.bind(this); /** * This function generates previously defined middlewares for the sequential execution */