feat: Refactor server implementation to support Bun and Node environments
- Introduced `ServerNode` and `BunServer` classes to handle server logic for Node and Bun respectively. - Updated `App` class to initialize the appropriate server based on the runtime environment. - Enhanced `parseBody` function to handle request body parsing for both environments. - Modified WebSocket handling to support Bun's WebSocket upgrade mechanism. - Improved error handling and response structure across the server implementation. - Added support for custom middleware in the server's request handling. - Refactored server base functionality into `ServerBase` for better code organization. - Updated type definitions to reflect changes in server options and listener handling. - Added a new demo for testing the server functionality with various request types.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Route, App } from '@kevisual/router';
|
||||
import { Route, App } from '@kevisual/router/src/app.ts';
|
||||
|
||||
const app = new App({ io: true });
|
||||
const app = new App({ serverOptions: { io: true } });
|
||||
app.listen(4002);
|
||||
const route01 = new Route('demo', '01');
|
||||
route01.run = async (ctx) => {
|
||||
@@ -25,3 +25,14 @@ app.addRoute(route02);
|
||||
|
||||
console.log(`http://localhost:4002/api/router?path=demo&key=02`);
|
||||
console.log(`http://localhost:4002/api/router?path=demo&key=01`);
|
||||
|
||||
app.server.on({
|
||||
id: 'abc',
|
||||
path: '/ws',
|
||||
io: true,
|
||||
fun: async ({ data }, { end }) => {
|
||||
console.log('Custom middleware for /ws');
|
||||
console.log('Data received:', data);
|
||||
end({ message: 'Hello from /ws middleware' });
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user