A node req/res http bridge.
- node: 18
- @chubbyts/chubbyts-http-types: ^1.3.1 || ^2.0.0
Through NPM as @chubbyts/chubbyts-http-node-bridge.
npm i @chubbyts/chubbyts-http-node-bridge@^1.4.0
import {
createServerRequestFactory,
createStreamFromResourceFactory,
createUriFactory,
} from '@chubbyts/chubbyts-http/dist/message-factory';
import { createServer, IncomingMessage, Server, ServerResponse } from 'http';
import { createNodeToServerRequestFactory, createResponseToNodeEmitter } from '@chubbyts/chubbyts-http-node-bridge/dist/node-http';
const shutdownServer = (server: Server) => {
server.close((err) => {
if (err) {
console.warn(`Shutdown server with error: ${err}`);
process.exit(1);
}
console.log('Shutdown server');
process.exit(0);
});
};
const app = ...;
const nodeToServerRequestFactory = createNodeToServerRequestFactory(
createUriFactory(),
createServerRequestFactory(),
createStreamFromResourceFactory(),
);
const responseToNodeEmitter = createResponseToNodeEmitter();
const server = createServer(async (req: IncomingMessage, res: ServerResponse) => {
responseToNodeEmitter(await app(nodeToServerRequestFactory(req)), res);
});
const host = '0.0.0.0';
const port = 8080;
server.listen(port, host, () => {
console.log(`Listening to ${host}:${port}`);
});
process.on('SIGINT', () => shutdownServer(server));
process.on('SIGTERM', () => shutdownServer(server));
2025 Dominik Zogg