feat(server): add HTTP file-based routing support

- Add file-based HTTP routing with httpDir and httpPrefix config options
- Create defineHttp<TBody>() helper for type-safe route definitions
- Support dynamic routes with [param].ts file naming convention
- Add CORS support for cross-origin requests
- Allow merging file routes with inline http config
- RPC server now supports attaching to existing HTTP server via server option
- Add comprehensive documentation for HTTP routing
This commit is contained in:
yhh
2025-12-31 09:52:45 +08:00
parent 12051d987f
commit d3e489aad3
19 changed files with 1226 additions and 37 deletions

View File

@@ -30,7 +30,7 @@
export { createServer } from './core/server.js'
// Helpers
export { defineApi, defineMsg } from './helpers/define.js'
export { defineApi, defineMsg, defineHttp } from './helpers/define.js'
// Room System
export { Room, type RoomOptions } from './room/Room.js'
@@ -46,7 +46,19 @@ export type {
MsgContext,
ApiDefinition,
MsgDefinition,
HttpDefinition,
HttpMethod,
} from './types/index.js'
// HTTP
export { createHttpRouter } from './http/router.js'
export type {
HttpRequest,
HttpResponse,
HttpHandler,
HttpRoutes,
CorsOptions,
} from './http/types.js'
// Re-export useful types from @esengine/rpc
export { RpcError, ErrorCode } from '@esengine/rpc'