Skip to content

Commit

Permalink
Merge pull request #34 from ty-ras/issue/33-add-specific-listen-funct…
Browse files Browse the repository at this point in the history
…ionality

#33 Adjusting to newer version of generic server …
  • Loading branch information
stazz committed Aug 23, 2023
2 parents 9bad1a4 + fc1b224 commit 9b3bff5
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 2 deletions.
4 changes: 2 additions & 2 deletions server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ty-ras/server-node",
"version": "2.0.0",
"version": "2.1.0",
"author": {
"name": "Stanislav Muhametsin",
"email": "346799+stazz@users.noreply.github.com",
Expand Down Expand Up @@ -31,7 +31,7 @@
}
},
"dependencies": {
"@ty-ras/server": "^2.0.0"
"@ty-ras/server": "^2.1.1"
},
"devDependencies": {
"@ava/get-port": "2.0.0",
Expand Down
21 changes: 21 additions & 0 deletions server/src/__test__/listen.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/**
* @file This file contains unit tests for functionality in file `../listen.ts`.
*/

import test from "ava";

import getPort from "@ava/get-port";
import * as spec from "../listen";
import * as server from "../server";

test("Validate that listening to server does not crash", async (c) => {
// Not much else we can do since CORS callbacks are just call-thru to @ty-ras/server functionality
c.plan(1);
await c.notThrowsAsync(async () => {
await spec.listenAsync(
server.createServer({ endpoints: [] }),
"localhost",
await getPort(),
);
});
});
1 change: 1 addition & 0 deletions server/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
export type * from "./context.types";
export * from "./server";
export * from "./cors";
export * from "./listen";
50 changes: 50 additions & 0 deletions server/src/listen.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
* @file This file contains function that can be used to expose uniform way to listen to TyRAS servers.
*/

import * as net from "node:net";
import type * as server from "./server";
import * as serverGeneric from "@ty-ras/server";

/**
* The helper function to listen to given {@link server.HttpServer} asynchronously.
* @param server The {@link server.HttpServer} to listen to.
* @param host The hostname as string.
* @param port The port as number.
* @param backlog The backlog parameter, if any.
* @returns Asynchronously nothing.
*/
export function listenAsync(
server: server.HttpServer,
host: string,
port: number,
backlog?: number,
): Promise<void>;

/**
*The helper function to listen to given {@link server.HttpServer} asynchronously.
* @param server The {@link server.HttpServer} to listen to.
* @param options The options for listening.
* @returns Asynchronously nothing.
*/
export function listenAsync(
server: server.HttpServer,
options: net.ListenOptions,
): Promise<void>;

/**
* The helper function to listen to given {@link server.HttpServer} asynchronously.
* @param server The {@link server.HttpServer} to listen to.
* @param hostOrOptions The {@link net.ListenOptions}.
* @param port The port to listen to.
* @param backlog The backlog parameter, if any.
* @returns Asynchronously nothing.
*/
export function listenAsync(
server: server.HttpServer,
hostOrOptions: string | net.ListenOptions,
port?: number,
backlog?: number,
) {
return serverGeneric.listenAsyncGeneric(server, hostOrOptions, port, backlog);
}
9 changes: 9 additions & 0 deletions server/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -323,3 +323,12 @@ const isSecure = (
(version === 1 ? secureHttp1OptionKeys : secureHttp2OptionKeys).some(
(propKey) => propKey in options,
));

/**
* This type contains all the HTTP server types that can be created with TyRAS backend for Node servers.
*/
export type HttpServer =
| http.Server
| https.Server
| http2.Http2Server
| http2.Http2SecureServer;
7 changes: 7 additions & 0 deletions server/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,13 @@
dependencies:
"@ty-ras/endpoint" "^2.0.0"

"@ty-ras/server@^2.1.1":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@ty-ras/server/-/server-2.1.1.tgz#ea13ddbe58f3603d6eab396277c1cf97c2171fe7"
integrity sha512-KAiuSEYwXKQIfMSIDCaGjuX/hy42oes/JnyG0blumMNwR0kSA6PYonDfg1ROtBPO9dGQZ/mWiWS3JKbZfMFKoQ==
dependencies:
"@ty-ras/endpoint" "^2.0.0"

"@types/istanbul-lib-coverage@^2.0.1":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
Expand Down

0 comments on commit 9b3bff5

Please sign in to comment.