@chubbyts/chubbyts-undici-server-uwebsockets
v1.0.1
Published
Use @chubbyts/chubbyts-undici-server on uwebsockets.
Downloads
25
Readme
chubbyts-undici-server-uwebsockets
Description
Use @chubbyts/chubbyts-undici-server on uwebsockets.
Requirements
- node: 20
- @chubbyts/chubbyts-undici-server: ^1.0.1
- uWebSockets.js: github:uNetworking/uWebSockets.js#v20.56.0
Installation
Through NPM as @chubbyts/chubbyts-undici-server-uwebsockets.
npm i @chubbyts/chubbyts-undici-server-uwebsockets@^1.0.1Usage
import type { Handler, ServerRequest } from '@chubbyts/chubbyts-undici-server/dist/server';
import { Response } from '@chubbyts/chubbyts-undici-server/dist/server';
import type { HttpRequest, HttpResponse } from 'uWebSockets.js';
import { App } from 'uWebSockets.js';
import {
createUWebSocketsRequestToUndiciRequestFactory,
createUndiciResponseToUWebSocketsResponseEmitter,
} from '@chubbyts/chubbyts-undici-server-uwebsockets/dist/uwebsockets';
const serverHost = process.env.SERVER_HOST as string;
const serverPort = parseInt(process.env.SERVER_PORT as string);
const uUWebSocketsRequestToUndiciRequestFactory = createUWebSocketsRequestToUndiciRequestFactory('https://example.com');
// for example @chubbyts/chubbyts-framework app (which implements Handler)
const handler: Handler = async (serverRequest: ServerRequest<{name: string}>): Promise<Response> => {
return new Response(`Hello, ${serverRequest.attributes.name}`, {
status: 200,
statusText: STATUS_CODES[200],
headers: {'content-type': 'text/plain'}
});
};
const undiciResponseToUWebSocketsResponseEmitter = createUndiciResponseToUWebSocketsResponseEmitter();
App()
.any('/*', async (res: HttpResponse, req: HttpRequest) => {
undiciResponseToUWebSocketsResponseEmitter(await handler(uUWebSocketsRequestToUndiciRequestFactory(req, res)), res);
})
.listen(serverHost, serverPort, (listenSocket: unknown) => {
if (listenSocket) {
console.log(`Listening to ${serverHost}:${serverPort}`);
}
});Copyright
2025 Dominik Zogg
