@stacksjs/bun-router 0.0.14 → 0.0.15
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.
- package/README.md +261 -584
- package/bin/cli.ts +9 -0
- package/dist/auth.d.ts +134 -0
- package/dist/cache/lru-cache.d.ts +139 -0
- package/dist/cache/middleware-memoization.d.ts +151 -0
- package/dist/cache/route-cache-warmer.d.ts +161 -0
- package/dist/cache/sqlite-cache.d.ts +209 -0
- package/dist/cache/streaming-cache.d.ts +132 -0
- package/dist/chunk-j0e7z7hd.js +18053 -0
- package/dist/cli/colors.d.ts +15 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/middleware.d.ts +31 -0
- package/dist/cli/openapi.d.ts +17 -0
- package/dist/cli/router.d.ts +15 -0
- package/dist/cli/routes.d.ts +29 -0
- package/dist/cli/utils.d.ts +74 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +3360 -0
- package/dist/config.d.ts +7 -0
- package/dist/container/container.d.ts +273 -0
- package/dist/container/contextual-binding.d.ts +240 -0
- package/dist/container/decorators.d.ts +141 -0
- package/dist/container/service-provider.d.ts +285 -0
- package/dist/development/hot-reload.d.ts +187 -0
- package/dist/development/index.d.ts +167 -0
- package/dist/development/performance-profiler.d.ts +217 -0
- package/dist/development/route-debugger.d.ts +154 -0
- package/dist/development/route-inspector.d.ts +211 -0
- package/dist/development/typescript-utilities.d.ts +209 -0
- package/dist/docs.d.ts +11 -0
- package/dist/errors/circuit-breaker.d.ts +195 -0
- package/dist/errors/error-handler.d.ts +88 -0
- package/dist/errors/error-reporting.d.ts +144 -0
- package/dist/errors/exceptions.d.ts +184 -0
- package/dist/errors/graceful-degradation.d.ts +154 -0
- package/dist/errors/index.d.ts +9 -0
- package/dist/errors/router-errors.d.ts +110 -0
- package/dist/file-serving/static-files.d.ts +143 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +13968 -0
- package/dist/middleware/auth.d.ts +63 -0
- package/dist/middleware/content_security_policy.d.ts +53 -0
- package/dist/middleware/cors.d.ts +5 -0
- package/dist/middleware/csrf.d.ts +7 -0
- package/dist/middleware/ddos_protection.d.ts +39 -0
- package/dist/middleware/file_security.d.ts +26 -0
- package/dist/middleware/file_upload.d.ts +38 -0
- package/dist/middleware/helmet.d.ts +54 -0
- package/dist/middleware/index.d.ts +44 -0
- package/dist/middleware/input_validation.d.ts +45 -0
- package/dist/middleware/json_body.d.ts +4 -0
- package/dist/middleware/performance_alerting.d.ts +87 -0
- package/dist/middleware/performance_dashboard.d.ts +87 -0
- package/dist/middleware/performance_monitor.d.ts +209 -0
- package/dist/middleware/pipeline.d.ts +131 -0
- package/dist/middleware/rate_limit.d.ts +36 -0
- package/dist/middleware/request_id.d.ts +4 -0
- package/dist/middleware/request_signing.d.ts +153 -0
- package/dist/middleware/request_tracer.d.ts +72 -0
- package/dist/middleware/response_cache.d.ts +97 -0
- package/dist/middleware/security.d.ts +69 -0
- package/dist/middleware/security_suite.d.ts +46 -0
- package/dist/middleware/session.d.ts +23 -0
- package/dist/model-binding/index.d.ts +2 -0
- package/dist/model-binding/model-middleware.d.ts +118 -0
- package/dist/model-binding/model-registry.d.ts +164 -0
- package/dist/model-binding.d.ts +185 -0
- package/dist/model-resolver-factory.d.ts +31 -0
- package/dist/observability/correlation.d.ts +187 -0
- package/dist/observability/health-checks.d.ts +186 -0
- package/dist/observability/index.d.ts +60 -0
- package/dist/observability/integration.d.ts +147 -0
- package/dist/observability/metrics.d.ts +184 -0
- package/dist/observability/tracing.d.ts +187 -0
- package/dist/optimization/bun-utilities.d.ts +224 -0
- package/dist/query-builder-integration.d.ts +36 -0
- package/dist/request/context.d.ts +34 -0
- package/dist/request/enhanced-request.d.ts +213 -0
- package/dist/request/macros.d.ts +300 -0
- package/dist/response/macros.d.ts +256 -0
- package/dist/response/response-factory.d.ts +133 -0
- package/dist/router/api-routes.d.ts +5 -0
- package/dist/router/file-based-routing.d.ts +118 -0
- package/dist/router/file-streaming.d.ts +5 -0
- package/dist/router/fluent-router.d.ts +315 -0
- package/dist/router/fluent-routing.d.ts +271 -0
- package/dist/router/group-organization.d.ts +5 -0
- package/dist/router/handler-resolver.d.ts +24 -0
- package/dist/router/http-methods.d.ts +10 -0
- package/dist/router/index.d.ts +114 -0
- package/dist/router/middleware-groups.d.ts +94 -0
- package/dist/router/middleware-integration.d.ts +112 -0
- package/dist/router/middleware.d.ts +5 -0
- package/dist/router/model-binding.d.ts +5 -0
- package/dist/router/optimized-route-matching.d.ts +6 -0
- package/dist/router/route-building.d.ts +5 -0
- package/dist/router/route-compiler.d.ts +153 -0
- package/dist/router/route-matching.d.ts +5 -0
- package/dist/router/route-trie.d.ts +114 -0
- package/dist/router/router.d.ts +317 -0
- package/dist/router/server.d.ts +5 -0
- package/dist/router/validation-integration.d.ts +170 -0
- package/dist/router/view-rendering.d.ts +5 -0
- package/dist/router/websocket.d.ts +5 -0
- package/dist/routing/route-caching.d.ts +129 -0
- package/dist/routing/route-throttling.d.ts +150 -0
- package/dist/routing/subdomain-routing.d.ts +206 -0
- package/dist/session/database-store.d.ts +51 -0
- package/dist/session/file-store.d.ts +22 -0
- package/dist/session/index.d.ts +106 -0
- package/dist/session/memory-store.d.ts +21 -0
- package/dist/session/redis-store.d.ts +31 -0
- package/dist/streaming/index.d.ts +3 -0
- package/dist/streaming/sse-handler.d.ts +138 -0
- package/dist/streaming/stream-handler.d.ts +114 -0
- package/dist/testing/auth-testing.d.ts +156 -0
- package/dist/testing/file-upload-testing.d.ts +190 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/middleware-testing.d.ts +138 -0
- package/dist/testing/model-binding-testing.d.ts +186 -0
- package/dist/testing/performance-testing.d.ts +235 -0
- package/dist/testing/test-client.d.ts +117 -0
- package/dist/testing/test-request.d.ts +85 -0
- package/dist/testing/test-response.d.ts +90 -0
- package/dist/testing/types.d.ts +207 -0
- package/dist/testing/websocket-testing.d.ts +227 -0
- package/dist/types/controller-types.d.ts +208 -0
- package/dist/types/core.d.ts +543 -0
- package/dist/types/middleware-types.d.ts +227 -0
- package/dist/types/request-response-augmentation.d.ts +261 -0
- package/dist/types/route-inference.d.ts +168 -0
- package/dist/types.d.ts +1794 -0
- package/dist/url.d.ts +56 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/query-preservation.d.ts +48 -0
- package/dist/utils.d.ts +69 -0
- package/dist/validation/validator.d.ts +140 -0
- package/dist/websocket/clustering.d.ts +185 -0
- package/package.json +45 -44
- package/src/auth.ts +469 -0
- package/src/cache/lru-cache.ts +457 -0
- package/src/cache/middleware-memoization.ts +531 -0
- package/src/cache/route-cache-warmer.ts +486 -0
- package/src/cache/sqlite-cache.ts +783 -0
- package/src/cache/streaming-cache.ts +572 -0
- package/src/cli/colors.ts +29 -0
- package/src/cli/index.ts +287 -0
- package/src/cli/middleware.ts +291 -0
- package/src/cli/openapi.ts +407 -0
- package/src/cli/router.ts +188 -0
- package/src/cli/routes.ts +265 -0
- package/src/cli/utils.ts +531 -0
- package/src/cli.ts +5 -0
- package/src/config.ts +322 -0
- package/src/container/container.ts +740 -0
- package/src/container/contextual-binding.ts +603 -0
- package/src/container/decorators.ts +359 -0
- package/src/container/service-provider.ts +596 -0
- package/src/development/hot-reload.ts +673 -0
- package/src/development/index.ts +499 -0
- package/src/development/performance-profiler.ts +717 -0
- package/src/development/route-debugger.ts +527 -0
- package/src/development/route-inspector.ts +749 -0
- package/src/development/typescript-utilities.ts +682 -0
- package/src/docs.ts +397 -0
- package/src/errors/circuit-breaker.ts +732 -0
- package/src/errors/error-handler.ts +569 -0
- package/src/errors/error-reporting.ts +672 -0
- package/src/errors/exceptions.ts +536 -0
- package/src/errors/graceful-degradation.ts +621 -0
- package/src/errors/index.ts +21 -0
- package/src/errors/router-errors.ts +632 -0
- package/src/file-serving/static-files.ts +581 -0
- package/src/index.ts +14 -0
- package/src/middleware/auth.ts +220 -0
- package/src/middleware/content_security_policy.ts +215 -0
- package/src/middleware/cors.ts +74 -0
- package/src/middleware/csrf.ts +108 -0
- package/src/middleware/ddos_protection.ts +255 -0
- package/src/middleware/file_security.ts +191 -0
- package/src/middleware/file_upload.ts +275 -0
- package/src/middleware/helmet.ts +268 -0
- package/src/middleware/index.ts +117 -0
- package/src/middleware/input_validation.ts +449 -0
- package/src/middleware/json_body.ts +37 -0
- package/src/middleware/performance_alerting.ts +538 -0
- package/src/middleware/performance_dashboard.ts +661 -0
- package/src/middleware/performance_monitor.ts +943 -0
- package/src/middleware/pipeline.ts +489 -0
- package/src/middleware/rate_limit.ts +245 -0
- package/src/middleware/request_id.ts +36 -0
- package/src/middleware/request_signing.ts +636 -0
- package/src/middleware/request_tracer.ts +636 -0
- package/src/middleware/response_cache.ts +743 -0
- package/src/middleware/security.ts +482 -0
- package/src/middleware/security_suite.ts +257 -0
- package/src/middleware/session.ts +91 -0
- package/src/model-binding/index.ts +18 -0
- package/src/model-binding/model-middleware.ts +425 -0
- package/src/model-binding/model-registry.ts +550 -0
- package/src/model-binding.ts +370 -0
- package/src/model-resolver-factory.ts +106 -0
- package/src/observability/correlation.ts +691 -0
- package/src/observability/health-checks.ts +729 -0
- package/src/observability/index.ts +184 -0
- package/src/observability/integration.ts +548 -0
- package/src/observability/metrics.ts +753 -0
- package/src/observability/tracing.ts +638 -0
- package/src/optimization/bun-utilities.ts +778 -0
- package/src/query-builder-integration.ts +137 -0
- package/src/request/context.ts +62 -0
- package/src/request/enhanced-request.ts +857 -0
- package/src/request/macros.ts +688 -0
- package/src/response/macros.ts +665 -0
- package/src/response/response-factory.ts +596 -0
- package/src/router/api-routes.ts +243 -0
- package/src/router/file-based-routing.ts +690 -0
- package/src/router/file-streaming.ts +383 -0
- package/src/router/fluent-router.ts +927 -0
- package/src/router/fluent-routing.ts +797 -0
- package/src/router/group-organization.ts +213 -0
- package/src/router/handler-resolver.ts +291 -0
- package/src/router/http-methods.ts +377 -0
- package/src/router/index.ts +187 -0
- package/src/router/middleware-groups.ts +222 -0
- package/src/router/middleware-integration.ts +399 -0
- package/src/router/middleware.ts +231 -0
- package/src/router/model-binding.ts +215 -0
- package/src/router/optimized-route-matching.ts +253 -0
- package/src/router/route-building.ts +221 -0
- package/src/router/route-compiler.ts +702 -0
- package/src/router/route-matching.ts +349 -0
- package/src/router/route-trie.ts +464 -0
- package/src/router/router.ts +1604 -0
- package/src/router/server.ts +462 -0
- package/src/router/validation-integration.ts +443 -0
- package/src/router/view-rendering.ts +233 -0
- package/src/router/websocket.ts +100 -0
- package/src/routing/route-caching.ts +402 -0
- package/src/routing/route-throttling.ts +469 -0
- package/src/routing/subdomain-routing.ts +492 -0
- package/src/session/database-store.ts +109 -0
- package/src/session/file-store.ts +148 -0
- package/src/session/index.ts +244 -0
- package/src/session/memory-store.ts +88 -0
- package/src/session/redis-store.ts +93 -0
- package/src/streaming/index.ts +17 -0
- package/src/streaming/sse-handler.ts +482 -0
- package/src/streaming/stream-handler.ts +552 -0
- package/src/testing/auth-testing.ts +446 -0
- package/src/testing/file-upload-testing.ts +543 -0
- package/src/testing/index.ts +10 -0
- package/src/testing/middleware-testing.ts +322 -0
- package/src/testing/model-binding-testing.ts +645 -0
- package/src/testing/performance-testing.ts +738 -0
- package/src/testing/test-client.ts +310 -0
- package/src/testing/test-request.ts +315 -0
- package/src/testing/test-response.ts +332 -0
- package/src/testing/types.ts +224 -0
- package/src/testing/websocket-testing.ts +590 -0
- package/src/types/controller-types.ts +385 -0
- package/src/types/core.ts +683 -0
- package/src/types/middleware-types.ts +419 -0
- package/src/types/request-response-augmentation.ts +489 -0
- package/src/types/route-inference.ts +357 -0
- package/src/types.ts +2067 -0
- package/src/url.ts +126 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/query-preservation.ts +201 -0
- package/src/utils.ts +327 -0
- package/src/validation/validator.ts +685 -0
- package/src/websocket/clustering.ts +762 -0
- package/CHANGELOG.md +0 -770
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import type { Route, RouteDefinition } from '../types'
|
|
2
|
+
import type { Router } from './router'
|
|
3
|
+
import { matchPath } from '../utils'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Route building extension for Router class
|
|
7
|
+
*/
|
|
8
|
+
export function registerRouteBuilding(RouterClass: typeof Router): void {
|
|
9
|
+
Object.defineProperties(RouterClass.prototype, {
|
|
10
|
+
/**
|
|
11
|
+
* Convert existing routes to the Bun.serve routes format
|
|
12
|
+
*/
|
|
13
|
+
buildBunServeRoutes: {
|
|
14
|
+
value(): Record<string, any> {
|
|
15
|
+
const bunRoutes: Record<string, any> = {}
|
|
16
|
+
|
|
17
|
+
// Group routes by path to build method-specific handlers
|
|
18
|
+
const routesByPath = new Map<string, Route[]>()
|
|
19
|
+
|
|
20
|
+
for (const route of this.routes) {
|
|
21
|
+
if (!routesByPath.has(route.path)) {
|
|
22
|
+
routesByPath.set(route.path, [])
|
|
23
|
+
}
|
|
24
|
+
routesByPath.get(route.path)!.push(route)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Build route handlers
|
|
28
|
+
for (const [path, routes] of routesByPath.entries()) {
|
|
29
|
+
if (routes.length === 1) {
|
|
30
|
+
// Single route handler
|
|
31
|
+
const route = routes[0]
|
|
32
|
+
|
|
33
|
+
// For static responses like health checks, use direct Response objects
|
|
34
|
+
if (
|
|
35
|
+
typeof route.handler === 'function'
|
|
36
|
+
&& route.handler.toString().includes('new Response')
|
|
37
|
+
&& !route.handler.toString().includes('await')
|
|
38
|
+
&& route.middleware.length === 0
|
|
39
|
+
) {
|
|
40
|
+
try {
|
|
41
|
+
// Create an enhanced request with empty params and cookie support
|
|
42
|
+
const mockReq = this.enhanceRequest(new Request('https://example.com'), {})
|
|
43
|
+
const testResult = (route.handler as any)(mockReq)
|
|
44
|
+
|
|
45
|
+
// If it returns a Response directly, use it as a static route
|
|
46
|
+
if (testResult instanceof Response) {
|
|
47
|
+
bunRoutes[path] = testResult
|
|
48
|
+
continue
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// If there's an error, fall back to the dynamic handler
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Dynamic route handler
|
|
57
|
+
bunRoutes[path] = async (req: Request) => {
|
|
58
|
+
// Create enhanced request with params
|
|
59
|
+
const url = new URL(req.url)
|
|
60
|
+
const params: Record<string, string> = {}
|
|
61
|
+
const constraintsRecord = route.constraints && !Array.isArray(route.constraints)
|
|
62
|
+
? route.constraints as Record<string, string>
|
|
63
|
+
: undefined
|
|
64
|
+
matchPath(path, url.pathname, params, constraintsRecord)
|
|
65
|
+
const enhancedReq = this.enhanceRequest(req, params)
|
|
66
|
+
|
|
67
|
+
// Treat the route handler as the terminal middleware so the
|
|
68
|
+
// chain reaches it. Previously this code called
|
|
69
|
+
// `runMiddleware(stack)` without the handler and then only
|
|
70
|
+
// called `resolveHandler()` if middlewareResult was falsy.
|
|
71
|
+
// The chain in `buildMiddlewareChain` bottoms out in
|
|
72
|
+
// `return result || new Response(null, { status: 200 })` —
|
|
73
|
+
// so any user middleware that does `await next()` (cors,
|
|
74
|
+
// request-id, auth gates, etc.) gets a truthy empty Response
|
|
75
|
+
// back from the bottom of the chain, returns it, and the
|
|
76
|
+
// outer `if (middlewareResult)` short-circuits before the
|
|
77
|
+
// handler runs. Visible symptom: every route returns
|
|
78
|
+
// `200 OK` with `Content-Length: 0`.
|
|
79
|
+
const routeHandlerMiddleware = async (req2: any, _next: any) =>
|
|
80
|
+
await this.resolveHandler(route.handler, req2)
|
|
81
|
+
const middlewareStack = [...this.globalMiddleware, ...route.middleware, routeHandlerMiddleware]
|
|
82
|
+
const response = await this.runMiddleware(enhancedReq, middlewareStack)
|
|
83
|
+
return this.applyModifiedCookies(
|
|
84
|
+
response ?? new Response('No response from middleware chain', { status: 500 }),
|
|
85
|
+
enhancedReq,
|
|
86
|
+
)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Multiple routes for same path (method-specific)
|
|
91
|
+
const methodHandlers: Record<string, any> = {}
|
|
92
|
+
|
|
93
|
+
for (const route of routes) {
|
|
94
|
+
const method = route.method
|
|
95
|
+
|
|
96
|
+
methodHandlers[method] = async (req: Request) => {
|
|
97
|
+
// Create enhanced request with params
|
|
98
|
+
const url = new URL(req.url)
|
|
99
|
+
const params: Record<string, string> = {}
|
|
100
|
+
const constraintsRecord = route.constraints && !Array.isArray(route.constraints)
|
|
101
|
+
? route.constraints as Record<string, string>
|
|
102
|
+
: undefined
|
|
103
|
+
matchPath(path, url.pathname, params, constraintsRecord)
|
|
104
|
+
const enhancedReq = this.enhanceRequest(req, params)
|
|
105
|
+
|
|
106
|
+
// See the long comment above the single-method branch:
|
|
107
|
+
// include the route handler as the terminal middleware so
|
|
108
|
+
// the chain reaches it. Without this, any user middleware
|
|
109
|
+
// (cors, request-id) short-circuits to a 200-empty default
|
|
110
|
+
// and the handler never runs.
|
|
111
|
+
const routeHandlerMiddleware = async (req2: any, _next: any) =>
|
|
112
|
+
await this.resolveHandler(route.handler, req2)
|
|
113
|
+
const middlewareStack = [...this.globalMiddleware, ...route.middleware, routeHandlerMiddleware]
|
|
114
|
+
const response = await this.runMiddleware(enhancedReq, middlewareStack)
|
|
115
|
+
return this.applyModifiedCookies(
|
|
116
|
+
response ?? new Response('No response from middleware chain', { status: 500 }),
|
|
117
|
+
enhancedReq,
|
|
118
|
+
)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
bunRoutes[path] = methodHandlers
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return bunRoutes
|
|
127
|
+
},
|
|
128
|
+
writable: true,
|
|
129
|
+
configurable: true,
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Load routes from files
|
|
134
|
+
*/
|
|
135
|
+
loadRoutes: {
|
|
136
|
+
async value(): Promise<void> {
|
|
137
|
+
if (!this.config.routesPath) {
|
|
138
|
+
return
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
try {
|
|
142
|
+
// Try to import API routes if configured
|
|
143
|
+
if (this.config.apiRoutesPath) {
|
|
144
|
+
try {
|
|
145
|
+
const apiRoutes = await import(this.config.apiRoutesPath)
|
|
146
|
+
if (apiRoutes.default && Array.isArray(apiRoutes.default)) {
|
|
147
|
+
// Register each route
|
|
148
|
+
for (const route of apiRoutes.default) {
|
|
149
|
+
this.registerRoute(route, 'api')
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
if (this.config.verbose) {
|
|
155
|
+
console.warn(`Failed to load API routes: ${error}`)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Try to import Web routes if configured
|
|
161
|
+
if (this.config.webRoutesPath) {
|
|
162
|
+
try {
|
|
163
|
+
const webRoutes = await import(this.config.webRoutesPath)
|
|
164
|
+
if (webRoutes.default && Array.isArray(webRoutes.default)) {
|
|
165
|
+
// Register each route
|
|
166
|
+
for (const route of webRoutes.default) {
|
|
167
|
+
this.registerRoute(route, 'web')
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
if (this.config.verbose) {
|
|
173
|
+
console.warn(`Failed to load Web routes: ${error}`)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
console.error('Error loading routes:', error)
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
writable: true,
|
|
183
|
+
configurable: true,
|
|
184
|
+
},
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Register a route definition
|
|
188
|
+
*/
|
|
189
|
+
registerRoute: {
|
|
190
|
+
value(route: RouteDefinition, type: 'api' | 'web'): void {
|
|
191
|
+
const { path, method, handler, middleware = [], name } = route
|
|
192
|
+
|
|
193
|
+
// Map HTTP method to Router method
|
|
194
|
+
switch (method) {
|
|
195
|
+
case 'GET':
|
|
196
|
+
this.get(path, handler, type, name, middleware)
|
|
197
|
+
break
|
|
198
|
+
case 'POST':
|
|
199
|
+
this.post(path, handler, type, name, middleware)
|
|
200
|
+
break
|
|
201
|
+
case 'PUT':
|
|
202
|
+
this.put(path, handler, type, name, middleware)
|
|
203
|
+
break
|
|
204
|
+
case 'DELETE':
|
|
205
|
+
this.delete(path, handler, type, name, middleware)
|
|
206
|
+
break
|
|
207
|
+
case 'PATCH':
|
|
208
|
+
this.patch(path, handler, type, name, middleware)
|
|
209
|
+
break
|
|
210
|
+
case 'OPTIONS':
|
|
211
|
+
this.options(path, handler, type, name, middleware)
|
|
212
|
+
break
|
|
213
|
+
default:
|
|
214
|
+
console.warn(`Unsupported HTTP method: ${method}`)
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
writable: true,
|
|
218
|
+
configurable: true,
|
|
219
|
+
},
|
|
220
|
+
})
|
|
221
|
+
}
|