@flightdev/http 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/router.ts","../src/context.ts","../src/server.ts"],"names":["createRadixRouter"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * @flightdev/http - Router\r\n * \r\n * Radix-tree based router for ultra-fast path matching.\r\n * Uses radix3 under the hood.\r\n */\r\n\r\nimport { createRouter as createRadixRouter, type RadixRouter } from 'radix3';\r\nimport type { Handler, HttpMethod, Route, Env } from './types.js';\r\n\r\n// ============================================================================\r\n// Router Types\r\n// ============================================================================\r\n\r\ninterface RouterNode<E extends Env = Env> {\r\n handlers: Map<HttpMethod | '*', Handler<E>>;\r\n}\r\n\r\ninterface MatchResult<E extends Env = Env> {\r\n handler: Handler<E>;\r\n params: Record<string, string>;\r\n}\r\n\r\n// ============================================================================\r\n// Router Class\r\n// ============================================================================\r\n\r\nexport class Router<E extends Env = Env> {\r\n private radix: RadixRouter<RouterNode<E>>;\r\n private routes: Route<E>[] = [];\r\n\r\n constructor() {\r\n this.radix = createRadixRouter<RouterNode<E>>();\r\n }\r\n\r\n /**\r\n * Add a route\r\n */\r\n add(method: HttpMethod | '*', path: string, handler: Handler<E>): void {\r\n // Normalize path\r\n const normalizedPath = this.normalizePath(path);\r\n\r\n // Get or create node\r\n let node = this.radix.lookup(normalizedPath);\r\n\r\n if (!node) {\r\n node = { handlers: new Map() };\r\n this.radix.insert(normalizedPath, node);\r\n }\r\n\r\n // Add handler for method\r\n node.handlers.set(method, handler);\r\n\r\n // Track route for debugging\r\n this.routes.push({\r\n method,\r\n path: normalizedPath,\r\n handler,\r\n middleware: [],\r\n });\r\n }\r\n\r\n /**\r\n * Match a request to a route\r\n */\r\n match(method: HttpMethod, path: string): MatchResult<E> | null {\r\n const normalizedPath = this.normalizePath(path);\r\n const result = this.radix.lookup(normalizedPath);\r\n\r\n if (!result) {\r\n return null;\r\n }\r\n\r\n // Try exact method first\r\n let handler = result.handlers.get(method);\r\n\r\n // Fall back to wildcard\r\n if (!handler) {\r\n handler = result.handlers.get('*');\r\n }\r\n\r\n if (!handler) {\r\n return null;\r\n }\r\n\r\n // radix3 returns params in the result via _params property\r\n // Also extract from the lookup result directly\r\n const params: Record<string, string> = (result as any).params || {};\r\n\r\n return { handler, params };\r\n }\r\n\r\n /**\r\n * Get all registered routes\r\n */\r\n getRoutes(): Route<E>[] {\r\n return [...this.routes];\r\n }\r\n\r\n /**\r\n * Normalize path\r\n */\r\n private normalizePath(path: string): string {\r\n // Ensure leading slash\r\n if (!path.startsWith('/')) {\r\n path = '/' + path;\r\n }\r\n\r\n // Remove trailing slash (except for root)\r\n if (path !== '/' && path.endsWith('/')) {\r\n path = path.slice(0, -1);\r\n }\r\n\r\n // Convert [param] to :param for radix3\r\n path = path.replace(/\\[([^\\]]+)\\]/g, ':$1');\r\n\r\n // Convert [...slug] to ** for catch-all\r\n path = path.replace(/\\[\\.\\.\\.([\\w]+)\\]/g, '**');\r\n\r\n return path;\r\n }\r\n\r\n /**\r\n * Extract params from matched path\r\n * @deprecated radix3 handles param extraction internally\r\n */\r\n private _extractParams(pattern: string, actualPath: string): Record<string, string> {\r\n const params: Record<string, string> = {};\r\n\r\n const patternParts = pattern.split('/');\r\n const actualParts = actualPath.split('/');\r\n\r\n for (let i = 0; i < patternParts.length; i++) {\r\n const patternPart = patternParts[i];\r\n if (!patternPart) continue;\r\n\r\n if (patternPart.startsWith(':')) {\r\n const paramName = patternPart.slice(1);\r\n params[paramName] = actualParts[i] || '';\r\n } else if (patternPart === '**') {\r\n // Catch-all: collect remaining parts\r\n const paramName = 'slug';\r\n params[paramName] = actualParts.slice(i).join('/');\r\n break;\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","/**\r\n * @flightdev/http - Context\r\n * \r\n * Request/Response context object passed to handlers.\r\n * \r\n * PERFORMANCE OPTIMIZATIONS (2026):\r\n * - Class-based implementation (methods on prototype, not recreated per request)\r\n * - Lazy URL parsing (parsed once, cached)\r\n * - Lazy cookie parsing (parsed once, cached)\r\n * - Minimal allocations in hot path\r\n */\r\n\r\nimport type { Context, Env } from './types.js';\r\n\r\n// ============================================================================\r\n// Context Implementation (Class-based for performance)\r\n// ============================================================================\r\n\r\n/**\r\n * High-performance Context implementation.\r\n * Methods live on the prototype, not recreated per request.\r\n */\r\nclass ContextImpl<E extends Env = Env> implements Context<E> {\r\n // Core properties\r\n readonly req: Request;\r\n readonly env: E['Bindings'];\r\n readonly params: Record<string, string>;\r\n readonly variables: E['Variables'];\r\n\r\n // Cached values (lazy initialization)\r\n private _url?: URL;\r\n private _cookies?: Record<string, string>;\r\n private _variables: Record<string, unknown>;\r\n\r\n constructor(\r\n request: Request,\r\n params: Record<string, string>,\r\n env: E['Bindings']\r\n ) {\r\n this.req = request;\r\n this.params = params;\r\n this.env = env;\r\n this._variables = {};\r\n this.variables = this._variables as E['Variables'];\r\n }\r\n\r\n // ========================================================================\r\n // Cached Getters (Lazy initialization)\r\n // ========================================================================\r\n\r\n /**\r\n * Get parsed URL (cached after first access)\r\n */\r\n get url(): URL {\r\n return this._url ??= new URL(this.req.url);\r\n }\r\n\r\n /**\r\n * Get pathname from cached URL\r\n */\r\n get pathname(): string {\r\n return this.url.pathname;\r\n }\r\n\r\n /**\r\n * Get query string from cached URL\r\n */\r\n get query(): URLSearchParams {\r\n return this.url.searchParams;\r\n }\r\n\r\n // ========================================================================\r\n // Response Helpers (on prototype, not recreated)\r\n // ========================================================================\r\n\r\n json<T>(data: T, status = 200): Response {\r\n return new Response(JSON.stringify(data), {\r\n status,\r\n headers: { 'Content-Type': 'application/json; charset=utf-8' },\r\n });\r\n }\r\n\r\n text(text: string, status = 200): Response {\r\n return new Response(text, {\r\n status,\r\n headers: { 'Content-Type': 'text/plain; charset=utf-8' },\r\n });\r\n }\r\n\r\n html(html: string, status = 200): Response {\r\n return new Response(html, {\r\n status,\r\n headers: { 'Content-Type': 'text/html; charset=utf-8' },\r\n });\r\n }\r\n\r\n redirect(url: string, status: 301 | 302 | 303 | 307 | 308 = 302): Response {\r\n return new Response(null, {\r\n status,\r\n headers: { Location: url },\r\n });\r\n }\r\n\r\n // ========================================================================\r\n // Variable Getter/Setter\r\n // ========================================================================\r\n\r\n get<K extends keyof E['Variables']>(key: K): E['Variables'][K] {\r\n return this._variables[key as string] as E['Variables'][K];\r\n }\r\n\r\n set<K extends keyof E['Variables']>(key: K, value: E['Variables'][K]): void {\r\n this._variables[key as string] = value;\r\n }\r\n\r\n // ========================================================================\r\n // Request Helpers\r\n // ========================================================================\r\n\r\n header(name: string): string | null {\r\n return this.req.headers.get(name);\r\n }\r\n\r\n /**\r\n * Get cookie value (cookies parsed once, cached)\r\n */\r\n cookie(name: string): string | undefined {\r\n if (!this._cookies) {\r\n const cookieHeader = this.req.headers.get('cookie');\r\n this._cookies = cookieHeader ? parseCookies(cookieHeader) : {};\r\n }\r\n return this._cookies[name];\r\n }\r\n}\r\n\r\n// ============================================================================\r\n// Cookie Parser (optimized)\r\n// ============================================================================\r\n\r\nfunction parseCookies(cookieHeader: string): Record<string, string> {\r\n const cookies: Record<string, string> = {};\r\n const pairs = cookieHeader.split(';');\r\n\r\n for (let i = 0; i < pairs.length; i++) {\r\n const pair = pairs[i].trim();\r\n const eqIdx = pair.indexOf('=');\r\n if (eqIdx > 0) {\r\n const name = pair.slice(0, eqIdx);\r\n const value = pair.slice(eqIdx + 1);\r\n cookies[name] = value;\r\n }\r\n }\r\n\r\n return cookies;\r\n}\r\n\r\n// ============================================================================\r\n// Context Factory (returns class instance)\r\n// ============================================================================\r\n\r\n/**\r\n * Create a new Context instance.\r\n * Uses class-based implementation for optimal performance.\r\n */\r\nexport function createContext<E extends Env = Env>(\r\n request: Request,\r\n params: Record<string, string> = {},\r\n env: E['Bindings'] = {} as E['Bindings']\r\n): Context<E> {\r\n return new ContextImpl<E>(request, params, env);\r\n}\r\n\r\n// Export class for advanced usage/testing\r\nexport { ContextImpl };\r\n","/**\r\n * @flightdev/http - Server\r\n * \r\n * Main server class that implements the FlightHttpServer interface.\r\n * \r\n * PERFORMANCE OPTIMIZATIONS (2026):\r\n * - Middleware chains pre-compiled at route registration (not per-request)\r\n * - Minimal allocations in fetch() hot path\r\n * - Uses optimized class-based Context\r\n */\r\n\r\nimport { Router } from './router.js';\r\nimport { createContext } from './context.js';\r\nimport type {\r\n FlightHttpServer,\r\n Handler,\r\n Middleware,\r\n HandlerOrMiddleware,\r\n HttpMethod,\r\n Context,\r\n Env,\r\n ServerOptions,\r\n ListenOptions,\r\n FetchOptions,\r\n} from './types.js';\r\n\r\n// ============================================================================\r\n// Pre-compiled Middleware Chain\r\n// ============================================================================\r\n\r\n/**\r\n * Pre-compile middleware chain into a single handler function.\r\n * This avoids closure creation on every request.\r\n */\r\nfunction compileMiddlewareChain<E extends Env>(\r\n middlewares: Middleware<E>[],\r\n handler: Handler<E>\r\n): Handler<E> {\r\n // No middleware - return handler directly (zero overhead)\r\n if (middlewares.length === 0) {\r\n return handler;\r\n }\r\n\r\n // Single middleware - inline optimization\r\n if (middlewares.length === 1) {\r\n const mw = middlewares[0];\r\n return (c: Context<E>) => mw(c, () => Promise.resolve(handler(c)));\r\n }\r\n\r\n // Multiple middlewares - build dispatch chain\r\n // Pre-build the chain at compile time, not runtime\r\n return (c: Context<E>) => {\r\n let index = 0;\r\n\r\n const dispatch = (): Promise<Response> => {\r\n if (index < middlewares.length) {\r\n const middleware = middlewares[index++];\r\n return Promise.resolve(middleware(c, dispatch));\r\n }\r\n return Promise.resolve(handler(c));\r\n };\r\n\r\n return dispatch();\r\n };\r\n}\r\n\r\n// ============================================================================\r\n// Server Class\r\n// ============================================================================\r\n\r\nexport class FlightHttp<E extends Env = Env> implements FlightHttpServer<E> {\r\n private router: Router<E>;\r\n private globalMiddleware: Middleware<E>[] = [];\r\n private notFoundHandler: Handler<E>;\r\n private errorHandler: (error: Error, c: Context<E>) => Response | Promise<Response>;\r\n private basePath: string;\r\n\r\n // Pre-compiled handlers cache (updated when middleware changes)\r\n private compiledNotFoundHandler?: Handler<E>;\r\n private middlewareVersion = 0;\r\n private lastCompiledVersion = -1;\r\n\r\n constructor(options: ServerOptions = {}) {\r\n this.router = new Router<E>();\r\n this.basePath = options.basePath || '';\r\n\r\n // Default not found handler\r\n this.notFoundHandler = (c) => c.json(\r\n { error: 'Not Found', path: c.pathname },\r\n 404\r\n );\r\n\r\n // Default error handler\r\n this.errorHandler = (error, c) => c.json(\r\n { error: error.message || 'Internal Server Error' },\r\n 500\r\n );\r\n }\r\n\r\n // ========================================================================\r\n // Route Registration\r\n // ========================================================================\r\n\r\n get(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('GET', path, handlers);\r\n }\r\n\r\n post(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('POST', path, handlers);\r\n }\r\n\r\n put(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('PUT', path, handlers);\r\n }\r\n\r\n delete(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('DELETE', path, handlers);\r\n }\r\n\r\n patch(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('PATCH', path, handlers);\r\n }\r\n\r\n options(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('OPTIONS', path, handlers);\r\n }\r\n\r\n head(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('HEAD', path, handlers);\r\n }\r\n\r\n all(path: string, ...handlers: HandlerOrMiddleware<E>[]): FlightHttpServer<E> {\r\n return this.addRoute('*', path, handlers);\r\n }\r\n\r\n // ========================================================================\r\n // Middleware\r\n // ========================================================================\r\n\r\n use(...handlers: Middleware<E>[]): FlightHttpServer<E> {\r\n this.globalMiddleware.push(...handlers);\r\n // Invalidate pre-compiled handlers\r\n this.middlewareVersion++;\r\n return this;\r\n }\r\n\r\n // ========================================================================\r\n // Sub-routing\r\n // ========================================================================\r\n\r\n route(path: string, router: FlightHttpServer<E>): FlightHttpServer<E> {\r\n if (router instanceof FlightHttp) {\r\n const routes = router.router.getRoutes();\r\n for (const route of routes) {\r\n const fullPath = this.basePath + path + route.path;\r\n this.router.add(route.method, fullPath, route.handler);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n // ========================================================================\r\n // Error Handling\r\n // ========================================================================\r\n\r\n notFound(handler: Handler<E>): FlightHttpServer<E> {\r\n this.notFoundHandler = handler;\r\n // Invalidate cached compiled handler\r\n this.compiledNotFoundHandler = undefined;\r\n return this;\r\n }\r\n\r\n onError(handler: (error: Error, c: Context<E>) => Response | Promise<Response>): FlightHttpServer<E> {\r\n this.errorHandler = handler;\r\n return this;\r\n }\r\n\r\n // ========================================================================\r\n // Core Fetch Handler (Optimized Hot Path)\r\n // ========================================================================\r\n\r\n async fetch(request: Request, options: FetchOptions = {}): Promise<Response> {\r\n // Fast path parsing - avoid new URL() here, let context handle it lazily\r\n const url = request.url;\r\n const pathStart = url.indexOf('/', url.indexOf('//') + 2);\r\n const queryStart = url.indexOf('?', pathStart);\r\n const path = queryStart === -1\r\n ? url.slice(pathStart)\r\n : url.slice(pathStart, queryStart);\r\n\r\n const method = request.method as HttpMethod;\r\n\r\n // Match route\r\n const match = this.router.match(method, path);\r\n\r\n // Create context (class-based, minimal allocations)\r\n const context = createContext<E>(\r\n request,\r\n match?.params || {},\r\n (options.env || {}) as E['Bindings']\r\n );\r\n\r\n try {\r\n if (match) {\r\n // Route found - execute with global middleware\r\n if (this.globalMiddleware.length === 0) {\r\n // No global middleware - direct handler call (fastest path)\r\n return await match.handler(context);\r\n } else {\r\n // Compile middleware chain\r\n const composed = compileMiddlewareChain(\r\n this.globalMiddleware,\r\n match.handler\r\n );\r\n return await composed(context);\r\n }\r\n } else {\r\n // No route found - execute not found handler\r\n return await this.getCompiledNotFoundHandler()(context);\r\n }\r\n } catch (error) {\r\n console.error('[Flight HTTP] Error:', error);\r\n return await this.errorHandler(\r\n error instanceof Error ? error : new Error(String(error)),\r\n context\r\n );\r\n }\r\n }\r\n\r\n // ========================================================================\r\n // Listen (Node.js adapter will override this)\r\n // ========================================================================\r\n\r\n listen(options?: ListenOptions | number): void {\r\n const port = typeof options === 'number' ? options : options?.port || 3000;\r\n console.log(`[Flight HTTP] Call adapter-specific listen() to start server on port ${port}`);\r\n console.log('[Flight HTTP] Import from \"@flightdev/http/node\" or \"@flightdev/http/bun\"');\r\n }\r\n\r\n // ========================================================================\r\n // Private Methods\r\n // ========================================================================\r\n\r\n private addRoute(\r\n method: HttpMethod | '*',\r\n path: string,\r\n handlers: HandlerOrMiddleware<E>[]\r\n ): FlightHttpServer<E> {\r\n // Last handler is the main handler\r\n const mainHandler = handlers[handlers.length - 1] as Handler<E>;\r\n const routeMiddleware = handlers.slice(0, -1) as Middleware<E>[];\r\n\r\n const fullPath = this.basePath + path;\r\n\r\n // Pre-compile route-specific middleware at registration time\r\n const compiledHandler = routeMiddleware.length > 0\r\n ? compileMiddlewareChain(routeMiddleware, mainHandler)\r\n : mainHandler;\r\n\r\n this.router.add(method, fullPath, compiledHandler);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get pre-compiled not found handler (with global middleware)\r\n */\r\n private getCompiledNotFoundHandler(): Handler<E> {\r\n // Recompile if middleware changed\r\n if (this.lastCompiledVersion !== this.middlewareVersion || !this.compiledNotFoundHandler) {\r\n this.compiledNotFoundHandler = this.globalMiddleware.length > 0\r\n ? compileMiddlewareChain(this.globalMiddleware, this.notFoundHandler)\r\n : this.notFoundHandler;\r\n this.lastCompiledVersion = this.middlewareVersion;\r\n }\r\n return this.compiledNotFoundHandler;\r\n }\r\n}\r\n\r\n// ============================================================================\r\n// Factory Function\r\n// ============================================================================\r\n\r\n/**\r\n * Create a new Flight HTTP server\r\n * \r\n * @example\r\n * ```typescript\r\n * import { createServer } from '@flightdev/http';\r\n * \r\n * const app = createServer();\r\n * \r\n * app.get('/', (c) => c.json({ message: 'Hello Flight!' }));\r\n * \r\n * export default app;\r\n * ```\r\n */\r\nexport function createServer<E extends Env = Env>(\r\n options: ServerOptions = {}\r\n): FlightHttpServer<E> {\r\n return new FlightHttp<E>(options);\r\n}\r\n"]}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @flightdev/http - Types
3
+ *
4
+ * Core type definitions for the HTTP server.
5
+ * Based on Web Standards API (Request, Response).
6
+ */
7
+ type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
8
+ /**
9
+ * Context object passed to route handlers
10
+ * Similar to Hono's Context for familiarity
11
+ */
12
+ interface Context<E extends Env = Env> {
13
+ /** The original Web Standard Request */
14
+ req: Request;
15
+ /** Environment bindings (for edge runtimes) */
16
+ env: E['Bindings'];
17
+ /** Route parameters extracted from URL */
18
+ params: Record<string, string>;
19
+ /** Variables set by middleware */
20
+ variables: E['Variables'];
21
+ /** Cached parsed URL (lazy, parsed once) */
22
+ readonly url: URL;
23
+ /** Pathname from cached URL */
24
+ readonly pathname: string;
25
+ /** Query params from cached URL */
26
+ readonly query: URLSearchParams;
27
+ json: <T>(data: T, status?: number) => Response;
28
+ text: (text: string, status?: number) => Response;
29
+ html: (html: string, status?: number) => Response;
30
+ redirect: (url: string, status?: 301 | 302 | 303 | 307 | 308) => Response;
31
+ get: <K extends keyof E['Variables']>(key: K) => E['Variables'][K];
32
+ set: <K extends keyof E['Variables']>(key: K, value: E['Variables'][K]) => void;
33
+ header: (name: string) => string | null;
34
+ cookie: (name: string) => string | undefined;
35
+ }
36
+ interface Env {
37
+ Bindings: Record<string, unknown>;
38
+ Variables: Record<string, unknown>;
39
+ }
40
+ /** Route handler function */
41
+ type Handler<E extends Env = Env> = (c: Context<E>) => Response | Promise<Response>;
42
+ /** Middleware function */
43
+ type Middleware<E extends Env = Env> = (c: Context<E>, next: () => Promise<Response>) => Response | Promise<Response>;
44
+ /** Combined handler or middleware */
45
+ type HandlerOrMiddleware<E extends Env = Env> = Handler<E> | Middleware<E>;
46
+ interface Route<E extends Env = Env> {
47
+ method: HttpMethod | '*';
48
+ path: string;
49
+ handler: Handler<E>;
50
+ middleware: Middleware<E>[];
51
+ }
52
+ interface ServerOptions {
53
+ /** Base path prefix for all routes */
54
+ basePath?: string;
55
+ }
56
+ interface ListenOptions {
57
+ /** Port to listen on */
58
+ port?: number;
59
+ /** Hostname to bind to */
60
+ hostname?: string;
61
+ /** Callback when server starts */
62
+ onListen?: (info: {
63
+ port: number;
64
+ hostname: string;
65
+ }) => void;
66
+ }
67
+ interface FetchOptions {
68
+ /** Environment bindings */
69
+ env?: Record<string, unknown>;
70
+ }
71
+ interface FlightHttpServer<E extends Env = Env> {
72
+ get: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
73
+ post: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
74
+ put: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
75
+ delete: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
76
+ patch: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
77
+ options: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
78
+ head: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
79
+ all: (path: string, ...handlers: HandlerOrMiddleware<E>[]) => FlightHttpServer<E>;
80
+ use: (...handlers: Middleware<E>[]) => FlightHttpServer<E>;
81
+ route: (path: string, router: FlightHttpServer<E>) => FlightHttpServer<E>;
82
+ fetch: (request: Request, options?: FetchOptions) => Promise<Response>;
83
+ listen: (options?: ListenOptions | number) => void;
84
+ notFound: (handler: Handler<E>) => FlightHttpServer<E>;
85
+ onError: (handler: (error: Error, c: Context<E>) => Response | Promise<Response>) => FlightHttpServer<E>;
86
+ }
87
+
88
+ export type { Context as C, Env as E, FlightHttpServer as F, HandlerOrMiddleware as H, ListenOptions as L, Middleware as M, Route as R, ServerOptions as S, Handler as a, FetchOptions as b, HttpMethod as c };
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@flightdev/http",
3
+ "version": "0.0.4",
4
+ "description": "Ultra-fast HTTP server for Flight Framework - Built on Web Standards",
5
+ "keywords": [
6
+ "flight",
7
+ "http",
8
+ "server",
9
+ "web-standards",
10
+ "edge"
11
+ ],
12
+ "license": "MIT",
13
+ "author": "Flight Contributors",
14
+ "type": "module",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js"
19
+ },
20
+ "./node": {
21
+ "types": "./dist/adapters/node.d.ts",
22
+ "import": "./dist/adapters/node.js"
23
+ },
24
+ "./bun": {
25
+ "types": "./dist/adapters/bun.d.ts",
26
+ "import": "./dist/adapters/bun.js"
27
+ },
28
+ "./deno": {
29
+ "types": "./dist/adapters/deno.d.ts",
30
+ "import": "./dist/adapters/deno.js"
31
+ }
32
+ },
33
+ "main": "./dist/index.js",
34
+ "types": "./dist/index.d.ts",
35
+ "files": [
36
+ "dist"
37
+ ],
38
+ "dependencies": {
39
+ "radix3": "^1.1.0"
40
+ },
41
+ "devDependencies": {
42
+ "@types/node": "^22.0.0",
43
+ "rimraf": "^6.0.0",
44
+ "tsup": "^8.0.0",
45
+ "typescript": "^5.7.0",
46
+ "vitest": "^2.0.0"
47
+ },
48
+ "scripts": {
49
+ "build": "tsup",
50
+ "dev": "tsup --watch",
51
+ "test": "vitest run",
52
+ "test:watch": "vitest",
53
+ "lint": "eslint src/",
54
+ "clean": "rimraf dist",
55
+ "typecheck": "tsc --noEmit"
56
+ }
57
+ }