@navios/core 1.0.0-alpha.2 → 1.0.0-alpha.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.
- package/CHANGELOG.md +90 -0
- package/lib/{index-BJjk2X1S.d.mts → index-6S7veHKD.d.mts} +845 -294
- package/lib/index-6S7veHKD.d.mts.map +1 -0
- package/lib/{index-DZ6NU03y.d.cts → index-r0i2txmg.d.cts} +845 -294
- package/lib/index-r0i2txmg.d.cts.map +1 -0
- package/lib/index.cjs +4420 -84
- package/lib/index.cjs.map +1 -0
- package/lib/index.d.cts +2 -2
- package/lib/index.d.mts +2 -2
- package/lib/index.mjs +4328 -3
- package/lib/index.mjs.map +1 -0
- package/lib/legacy-compat/index.cjs +41 -126
- package/lib/legacy-compat/index.cjs.map +1 -1
- package/lib/legacy-compat/index.d.cts +4 -60
- package/lib/legacy-compat/index.d.cts.map +1 -1
- package/lib/legacy-compat/index.d.mts +4 -60
- package/lib/legacy-compat/index.d.mts.map +1 -1
- package/lib/legacy-compat/index.mjs +14 -119
- package/lib/legacy-compat/index.mjs.map +1 -1
- package/lib/navios.factory-BanZIvtR.cjs +4134 -0
- package/lib/navios.factory-BanZIvtR.cjs.map +1 -0
- package/lib/navios.factory-C75yZCoD.mjs +3831 -0
- package/lib/navios.factory-C75yZCoD.mjs.map +1 -0
- package/lib/testing/index.cjs +3 -3
- package/lib/testing/index.cjs.map +1 -1
- package/lib/testing/index.d.cts +1 -1
- package/lib/testing/index.d.mts +1 -1
- package/lib/testing/index.mjs +2 -2
- package/lib/tokens-4J9sredA.mjs +100 -0
- package/lib/tokens-4J9sredA.mjs.map +1 -0
- package/lib/tokens-BuXXB01L.cjs +196 -0
- package/lib/tokens-BuXXB01L.cjs.map +1 -0
- package/lib/{use-guards.decorator-Be_QUx6b.mjs → use-guards.decorator-BecoQSmE.mjs} +3 -70
- package/lib/use-guards.decorator-BecoQSmE.mjs.map +1 -0
- package/lib/{use-guards.decorator-B6tghdxM.cjs → use-guards.decorator-DgD-kxF5.cjs} +7 -158
- package/lib/use-guards.decorator-DgD-kxF5.cjs.map +1 -0
- package/package.json +4 -4
- package/src/__tests__/attribute.factory.spec.mts +300 -0
- package/src/__tests__/console-logger.service.spec.mts +312 -0
- package/src/__tests__/guard-runner.service.spec.mts +399 -0
- package/src/__tests__/logger.service.spec.mts +147 -0
- package/src/__tests__/responders.spec.mts +6 -5
- package/src/factories/adapter.factory.mts +20 -0
- package/src/factories/endpoint-adapter.factory.mts +1 -1
- package/src/factories/http-adapter.factory.mts +1 -1
- package/src/factories/index.mts +1 -0
- package/src/factories/multipart-adapter.factory.mts +1 -1
- package/src/factories/reply.factory.mts +1 -1
- package/src/factories/request.factory.mts +1 -1
- package/src/factories/stream-adapter.factory.mts +1 -1
- package/src/factories/xml-stream-adapter.factory.mts +1 -1
- package/src/index.mts +1 -0
- package/src/interfaces/abstract-adapter.interface.mts +32 -0
- package/src/interfaces/abstract-http-adapter.interface.mts +27 -20
- package/src/interfaces/abstract-http-handler-adapter.interface.mts +86 -2
- package/src/interfaces/adapter-environment.interface.mts +74 -0
- package/src/interfaces/index.mts +2 -0
- package/src/interfaces/plugin.interface.mts +50 -16
- package/src/legacy-compat/attribute.factory.mts +2 -2
- package/src/legacy-compat/decorators/controller.decorator.mts +1 -1
- package/src/legacy-compat/decorators/endpoint.decorator.mts +1 -1
- package/src/legacy-compat/decorators/header.decorator.mts +2 -1
- package/src/legacy-compat/decorators/http-code.decorator.mts +2 -1
- package/src/legacy-compat/decorators/index.mts +2 -2
- package/src/legacy-compat/decorators/module.decorator.mts +1 -1
- package/src/legacy-compat/decorators/multipart.decorator.mts +1 -1
- package/src/legacy-compat/decorators/stream.decorator.mts +1 -1
- package/src/legacy-compat/decorators/use-guards.decorator.mts +1 -1
- package/src/legacy-compat/index.mts +10 -5
- package/src/logger/console-logger.service.mts +97 -7
- package/src/metadata/module.metadata.mts +43 -0
- package/src/navios.application.mts +172 -60
- package/src/navios.environment.mts +22 -12
- package/src/navios.factory.mts +31 -10
- package/src/services/abstract-handler-adapter.service.mts +366 -0
- package/src/services/index.mts +1 -0
- package/src/services/module-loader.service.mts +1 -0
- package/src/tokens/adapter.token.mts +6 -0
- package/src/tokens/http-adapter.token.mts +1 -1
- package/src/tokens/index.mts +1 -0
- package/src/utils/adapter-supports.util.mts +47 -0
- package/src/utils/index.mts +1 -0
- package/lib/index-BJjk2X1S.d.mts.map +0 -1
- package/lib/index-DZ6NU03y.d.cts.map +0 -1
- package/lib/src-C46ePe3d.cjs +0 -8022
- package/lib/src-C46ePe3d.cjs.map +0 -1
- package/lib/src-K2k0riYJ.mjs +0 -7587
- package/lib/src-K2k0riYJ.mjs.map +0 -1
- package/lib/use-guards.decorator-B6tghdxM.cjs.map +0 -1
- package/lib/use-guards.decorator-Be_QUx6b.mjs.map +0 -1
- package/src/legacy-compat/context-compat.mts +0 -95
- package/src/legacy-compat/decorators/factory.decorator.mts +0 -37
- package/src/legacy-compat/decorators/injectable.decorator.mts +0 -41
package/src/navios.factory.mts
CHANGED
|
@@ -6,7 +6,11 @@ import type {
|
|
|
6
6
|
|
|
7
7
|
import { Container } from '@navios/di'
|
|
8
8
|
|
|
9
|
-
import type {
|
|
9
|
+
import type {
|
|
10
|
+
AdapterEnvironment,
|
|
11
|
+
DefaultAdapterEnvironment,
|
|
12
|
+
NaviosModule,
|
|
13
|
+
} from './interfaces/index.mjs'
|
|
10
14
|
import type { NaviosApplicationOptions } from './navios.application.mjs'
|
|
11
15
|
|
|
12
16
|
import { ConsoleLogger, isNil, LoggerOutput } from './logger/index.mjs'
|
|
@@ -40,12 +44,16 @@ export class NaviosFactory {
|
|
|
40
44
|
/**
|
|
41
45
|
* Creates a new Navios application instance.
|
|
42
46
|
*
|
|
43
|
-
* This method sets up the dependency injection container, registers the
|
|
47
|
+
* This method sets up the dependency injection container, registers the adapter,
|
|
44
48
|
* configures logging, and initializes the application with the provided module.
|
|
45
49
|
*
|
|
50
|
+
* @typeParam Environment - Adapter environment interface for type-safe access
|
|
51
|
+
* to adapter-specific features. When specified, methods like `getServer()`,
|
|
52
|
+
* `enableCors()`, `listen()`, and `configure()` will have proper types.
|
|
53
|
+
*
|
|
46
54
|
* @param appModule - The root application module class decorated with @Module()
|
|
47
55
|
* @param options - Configuration options for the application
|
|
48
|
-
* @param options.adapter -
|
|
56
|
+
* @param options.adapter - Adapter environment (required for server functionality)
|
|
49
57
|
* @param options.logger - Logger configuration. Can be:
|
|
50
58
|
* - A LoggerService instance for custom logging
|
|
51
59
|
* - An array of LogLevel strings to enable specific log levels
|
|
@@ -60,6 +68,15 @@ export class NaviosFactory {
|
|
|
60
68
|
* adapter: defineFastifyEnvironment(),
|
|
61
69
|
* })
|
|
62
70
|
*
|
|
71
|
+
* // Type-safe setup with Fastify environment
|
|
72
|
+
* import { FastifyEnvironment } from '@navios/adapter-fastify'
|
|
73
|
+
*
|
|
74
|
+
* const app = await NaviosFactory.create<FastifyEnvironment>(AppModule, {
|
|
75
|
+
* adapter: defineFastifyEnvironment(),
|
|
76
|
+
* })
|
|
77
|
+
* app.configure({ trustProxy: true })
|
|
78
|
+
* const server = app.getServer() // FastifyInstance
|
|
79
|
+
*
|
|
63
80
|
* // With custom logger configuration
|
|
64
81
|
* const app = await NaviosFactory.create(AppModule, {
|
|
65
82
|
* adapter: defineFastifyEnvironment(),
|
|
@@ -74,12 +91,14 @@ export class NaviosFactory {
|
|
|
74
91
|
* })
|
|
75
92
|
* ```
|
|
76
93
|
*/
|
|
77
|
-
static async create
|
|
94
|
+
static async create<
|
|
95
|
+
Environment extends AdapterEnvironment = DefaultAdapterEnvironment,
|
|
96
|
+
>(
|
|
78
97
|
appModule: ClassTypeWithInstance<NaviosModule>,
|
|
79
98
|
options: NaviosApplicationOptions = {
|
|
80
99
|
adapter: [],
|
|
81
100
|
},
|
|
82
|
-
) {
|
|
101
|
+
): Promise<NaviosApplication<Environment>> {
|
|
83
102
|
const container = options.container ?? new Container(options.registry)
|
|
84
103
|
|
|
85
104
|
// Set request ID flag early, before any adapters are registered
|
|
@@ -97,7 +116,9 @@ export class NaviosFactory {
|
|
|
97
116
|
for (const adapter of adapters) {
|
|
98
117
|
await this.registerEnvironment(container, adapter)
|
|
99
118
|
}
|
|
100
|
-
const app = await container.get(
|
|
119
|
+
const app = (await container.get(
|
|
120
|
+
NaviosApplication,
|
|
121
|
+
)) as NaviosApplication<Environment>
|
|
101
122
|
await app.setup(appModule, options)
|
|
102
123
|
return app
|
|
103
124
|
}
|
|
@@ -105,13 +126,13 @@ export class NaviosFactory {
|
|
|
105
126
|
private static async registerEnvironment(
|
|
106
127
|
container: Container,
|
|
107
128
|
environment: {
|
|
108
|
-
|
|
129
|
+
tokens?: Map<InjectionToken<any, undefined>, AnyInjectableType>
|
|
109
130
|
} = {},
|
|
110
131
|
) {
|
|
111
132
|
const naviosEnvironment = await container.get(NaviosEnvironment)
|
|
112
|
-
const {
|
|
113
|
-
if (
|
|
114
|
-
naviosEnvironment.
|
|
133
|
+
const { tokens } = environment
|
|
134
|
+
if (tokens) {
|
|
135
|
+
naviosEnvironment.setupEnvironment(tokens)
|
|
115
136
|
}
|
|
116
137
|
}
|
|
117
138
|
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import type { ClassType, ScopedContainer } from '@navios/di'
|
|
2
|
+
import type { BaseEndpointOptions } from '@navios/builder'
|
|
3
|
+
|
|
4
|
+
import { inject, optional } from '@navios/di'
|
|
5
|
+
|
|
6
|
+
import type { HandlerMetadata } from '../metadata/index.mjs'
|
|
7
|
+
import type {
|
|
8
|
+
ArgumentGetterFn,
|
|
9
|
+
FormatArgumentsFn as InterfaceFormatArgumentsFn,
|
|
10
|
+
HttpHeader,
|
|
11
|
+
} from '../interfaces/index.mjs'
|
|
12
|
+
import type { NaviosApplicationOptions } from '../navios.application.mjs'
|
|
13
|
+
|
|
14
|
+
import { NaviosOptionsToken } from '../tokens/index.mjs'
|
|
15
|
+
import {
|
|
16
|
+
InstanceResolverService,
|
|
17
|
+
type InstanceResolution,
|
|
18
|
+
} from './instance-resolver.service.mjs'
|
|
19
|
+
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Types
|
|
22
|
+
// ============================================================================
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Function type for argument getters that extract data from requests.
|
|
26
|
+
* Re-exported from interface for convenience in adapter implementations.
|
|
27
|
+
*/
|
|
28
|
+
export type ArgumentGetter<TRequest> = ArgumentGetterFn<TRequest>
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Internal alias for FormatArgumentsFn from interface.
|
|
32
|
+
* Not re-exported to avoid duplicate exports - use FormatArgumentsFn from interfaces instead.
|
|
33
|
+
*/
|
|
34
|
+
type FormatArgumentsFn<TRequest> = InterfaceFormatArgumentsFn<TRequest>
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Static handler - can be called without a scoped container.
|
|
38
|
+
*/
|
|
39
|
+
export type AbstractStaticHandler<TRequest, TReply = void> = {
|
|
40
|
+
isStatic: true
|
|
41
|
+
handler: (request: TRequest, reply: TReply) => Promise<any>
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Dynamic handler - requires a scoped container for resolution.
|
|
46
|
+
*/
|
|
47
|
+
export type AbstractDynamicHandler<TRequest, TReply = void> = {
|
|
48
|
+
isStatic: false
|
|
49
|
+
handler: (
|
|
50
|
+
scoped: ScopedContainer,
|
|
51
|
+
request: TRequest,
|
|
52
|
+
reply: TReply,
|
|
53
|
+
) => Promise<any>
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Handler result - either static or dynamic.
|
|
58
|
+
*/
|
|
59
|
+
export type AbstractHandlerResult<TRequest, TReply = void> =
|
|
60
|
+
| AbstractStaticHandler<TRequest, TReply>
|
|
61
|
+
| AbstractDynamicHandler<TRequest, TReply>
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Context passed to handler creation methods.
|
|
65
|
+
*/
|
|
66
|
+
export interface HandlerContext<
|
|
67
|
+
TConfig extends BaseEndpointOptions = BaseEndpointOptions,
|
|
68
|
+
> {
|
|
69
|
+
methodName: string
|
|
70
|
+
statusCode: number
|
|
71
|
+
headers: Partial<Record<HttpHeader, number | string | string[] | undefined>>
|
|
72
|
+
handlerMetadata: HandlerMetadata<TConfig>
|
|
73
|
+
hasArguments: boolean
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// ============================================================================
|
|
77
|
+
// Default Options
|
|
78
|
+
// ============================================================================
|
|
79
|
+
|
|
80
|
+
const defaultOptions: NaviosApplicationOptions = {
|
|
81
|
+
adapter: [],
|
|
82
|
+
validateResponses: true,
|
|
83
|
+
enableRequestId: false,
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// ============================================================================
|
|
87
|
+
// Abstract Base Class
|
|
88
|
+
// ============================================================================
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Abstract base class for HTTP handler adapter services.
|
|
92
|
+
*
|
|
93
|
+
* Provides shared logic for:
|
|
94
|
+
* - Controller resolution (singleton vs request-scoped)
|
|
95
|
+
* - Argument formatting (sync/async detection)
|
|
96
|
+
* - Handler generation with static/dynamic branching
|
|
97
|
+
* - Standardized error handling
|
|
98
|
+
*
|
|
99
|
+
* Adapters implement abstract methods for framework-specific behavior:
|
|
100
|
+
* - Request parsing (query, body, URL params)
|
|
101
|
+
* - Response creation
|
|
102
|
+
* - Schema provision
|
|
103
|
+
*
|
|
104
|
+
* Supports all adapter types:
|
|
105
|
+
* - Endpoint adapters: JSON request/response with validation
|
|
106
|
+
* - Stream adapters: Streaming responses with extra context
|
|
107
|
+
* - Multipart adapters: Form data parsing (extends endpoint)
|
|
108
|
+
*
|
|
109
|
+
* @typeParam TRequest - Framework request type (BunRequest, FastifyRequest)
|
|
110
|
+
* @typeParam TReply - Framework reply type (void for Bun, FastifyReply)
|
|
111
|
+
* @typeParam TConfig - Endpoint configuration type
|
|
112
|
+
*/
|
|
113
|
+
export abstract class AbstractHandlerAdapterService<
|
|
114
|
+
TRequest,
|
|
115
|
+
TReply = void,
|
|
116
|
+
TConfig extends BaseEndpointOptions = BaseEndpointOptions,
|
|
117
|
+
> {
|
|
118
|
+
protected instanceResolver = inject(InstanceResolverService)
|
|
119
|
+
protected options = optional(NaviosOptionsToken) ?? defaultOptions
|
|
120
|
+
|
|
121
|
+
// ==========================================================================
|
|
122
|
+
// Abstract Methods - Must be implemented by adapters
|
|
123
|
+
// ==========================================================================
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Creates argument getter functions for extracting data from requests.
|
|
127
|
+
*
|
|
128
|
+
* Each getter populates a target object with data from the request
|
|
129
|
+
* (query params, body, URL params, etc.).
|
|
130
|
+
*
|
|
131
|
+
* Implementation varies by adapter type:
|
|
132
|
+
* - Endpoint: JSON body parsing with schema validation
|
|
133
|
+
* - Stream: Same as endpoint (body + query + url params)
|
|
134
|
+
* - Multipart: FormData/multipart stream parsing
|
|
135
|
+
*
|
|
136
|
+
* @param handlerMetadata - Handler metadata with schemas and configuration
|
|
137
|
+
* @returns Array of getter functions
|
|
138
|
+
*/
|
|
139
|
+
protected abstract createArgumentGetters(
|
|
140
|
+
handlerMetadata: HandlerMetadata<TConfig>,
|
|
141
|
+
): ArgumentGetter<TRequest>[]
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Creates a static handler for singleton controllers.
|
|
145
|
+
*
|
|
146
|
+
* Implementation varies by adapter type:
|
|
147
|
+
* - Endpoint: Invoke method(args), serialize response as JSON
|
|
148
|
+
* - Stream: Invoke method(args, streamContext), return Response/use reply
|
|
149
|
+
*
|
|
150
|
+
* @param boundMethod - Pre-bound controller method
|
|
151
|
+
* @param formatArguments - Function to format request arguments
|
|
152
|
+
* @param context - Handler context with metadata
|
|
153
|
+
* @returns Static handler result
|
|
154
|
+
*/
|
|
155
|
+
protected abstract createStaticHandler(
|
|
156
|
+
boundMethod: (...args: any[]) => Promise<any>,
|
|
157
|
+
formatArguments: FormatArgumentsFn<TRequest>,
|
|
158
|
+
context: HandlerContext<TConfig>,
|
|
159
|
+
): AbstractStaticHandler<TRequest, TReply>
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Creates a dynamic handler for request-scoped controllers.
|
|
163
|
+
*
|
|
164
|
+
* Implementation varies by adapter type:
|
|
165
|
+
* - Endpoint: Resolve controller per-request, invoke method(args)
|
|
166
|
+
* - Stream: Resolve controller per-request, invoke method(args, streamContext)
|
|
167
|
+
*
|
|
168
|
+
* @param resolution - Instance resolution with resolve function
|
|
169
|
+
* @param formatArguments - Function to format request arguments
|
|
170
|
+
* @param context - Handler context with metadata
|
|
171
|
+
* @returns Dynamic handler result
|
|
172
|
+
*/
|
|
173
|
+
protected abstract createDynamicHandler(
|
|
174
|
+
resolution: InstanceResolution,
|
|
175
|
+
formatArguments: FormatArgumentsFn<TRequest>,
|
|
176
|
+
context: HandlerContext<TConfig>,
|
|
177
|
+
): AbstractDynamicHandler<TRequest, TReply>
|
|
178
|
+
|
|
179
|
+
// ==========================================================================
|
|
180
|
+
// Public Interface Methods
|
|
181
|
+
// ==========================================================================
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Prepares argument getters for parsing request data.
|
|
185
|
+
*
|
|
186
|
+
* Public alias for createArgumentGetters to satisfy interface contracts.
|
|
187
|
+
* Subclasses should override createArgumentGetters instead.
|
|
188
|
+
*
|
|
189
|
+
* @param handlerMetadata - Handler metadata with schemas and configuration
|
|
190
|
+
* @returns Array of getter functions
|
|
191
|
+
*/
|
|
192
|
+
prepareArguments(
|
|
193
|
+
handlerMetadata: HandlerMetadata<TConfig>,
|
|
194
|
+
): ArgumentGetter<TRequest>[] {
|
|
195
|
+
return this.createArgumentGetters(handlerMetadata)
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Checks if the handler has any validation schemas defined.
|
|
200
|
+
*
|
|
201
|
+
* Override in subclasses to add additional schema checks
|
|
202
|
+
* (e.g., response schema validation for endpoint adapters).
|
|
203
|
+
*
|
|
204
|
+
* @param handlerMetadata - Handler metadata with configuration
|
|
205
|
+
* @returns true if handler has schemas
|
|
206
|
+
*/
|
|
207
|
+
hasSchema(handlerMetadata: HandlerMetadata<TConfig>): boolean {
|
|
208
|
+
const config = handlerMetadata.config
|
|
209
|
+
return !!config.requestSchema || !!config.querySchema
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Provides schema information for the framework's validation system.
|
|
214
|
+
*
|
|
215
|
+
* Override in subclasses for frameworks that support schema registration
|
|
216
|
+
* (e.g., Fastify). Default returns empty object (suitable for Bun).
|
|
217
|
+
*
|
|
218
|
+
* @param handlerMetadata - Handler metadata with configuration
|
|
219
|
+
* @returns Schema object for framework registration
|
|
220
|
+
*/
|
|
221
|
+
provideSchema(
|
|
222
|
+
_handlerMetadata: HandlerMetadata<TConfig>,
|
|
223
|
+
): Record<string, any> {
|
|
224
|
+
return {}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Creates a request handler function for the endpoint.
|
|
229
|
+
*
|
|
230
|
+
* This method orchestrates the entire handler creation:
|
|
231
|
+
* 1. Prepares argument getters for request parsing
|
|
232
|
+
* 2. Builds optimized formatArguments function (sync/async)
|
|
233
|
+
* 3. Resolves the controller (singleton vs request-scoped)
|
|
234
|
+
* 4. Creates appropriate handler (static or dynamic)
|
|
235
|
+
*
|
|
236
|
+
* @param controller - Controller class containing the handler method
|
|
237
|
+
* @param handlerMetadata - Handler metadata with configuration
|
|
238
|
+
* @returns Handler result (static or dynamic)
|
|
239
|
+
*/
|
|
240
|
+
async provideHandler(
|
|
241
|
+
controller: ClassType,
|
|
242
|
+
handlerMetadata: HandlerMetadata<TConfig>,
|
|
243
|
+
): Promise<AbstractHandlerResult<TRequest, TReply>> {
|
|
244
|
+
// Prepare argument getters
|
|
245
|
+
const getters = this.createArgumentGetters(handlerMetadata)
|
|
246
|
+
const formatArguments = this.buildFormatArguments(getters)
|
|
247
|
+
const hasArguments = getters.length > 0
|
|
248
|
+
|
|
249
|
+
// Build handler context
|
|
250
|
+
const context: HandlerContext<TConfig> = {
|
|
251
|
+
methodName: handlerMetadata.classMethod,
|
|
252
|
+
statusCode: handlerMetadata.successStatusCode,
|
|
253
|
+
headers: handlerMetadata.headers,
|
|
254
|
+
handlerMetadata,
|
|
255
|
+
hasArguments,
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Resolve controller with automatic scope detection
|
|
259
|
+
const resolution = await this.instanceResolver.resolve(controller)
|
|
260
|
+
|
|
261
|
+
// Create appropriate handler based on resolution
|
|
262
|
+
if (resolution.cached) {
|
|
263
|
+
const cachedController = resolution.instance as any
|
|
264
|
+
const boundMethod =
|
|
265
|
+
cachedController[context.methodName].bind(cachedController)
|
|
266
|
+
return this.createStaticHandler(boundMethod, formatArguments, context)
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
return this.createDynamicHandler(resolution, formatArguments, context)
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// ==========================================================================
|
|
273
|
+
// Public Utilities
|
|
274
|
+
// ==========================================================================
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Builds a formatArguments function from argument getters.
|
|
278
|
+
*
|
|
279
|
+
* Automatically detects sync vs async getters and optimizes accordingly:
|
|
280
|
+
* - If all getters are sync: returns sync function (no Promise overhead)
|
|
281
|
+
* - If any getter is async: returns async function with Promise.all
|
|
282
|
+
* - If no getters: returns frozen empty object (zero allocation)
|
|
283
|
+
*
|
|
284
|
+
* This method is public to allow composition-based adapters (like XML adapter)
|
|
285
|
+
* to reuse the optimized formatArguments logic without inheritance.
|
|
286
|
+
*
|
|
287
|
+
* @param getters - Array of argument getter functions
|
|
288
|
+
* @returns Function to format arguments from request
|
|
289
|
+
*/
|
|
290
|
+
buildFormatArguments(
|
|
291
|
+
getters: ArgumentGetter<TRequest>[],
|
|
292
|
+
): FormatArgumentsFn<TRequest> {
|
|
293
|
+
if (getters.length === 0) {
|
|
294
|
+
const emptyArgs = Object.freeze({})
|
|
295
|
+
return () => emptyArgs
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// Detect if any getter is async at registration time
|
|
299
|
+
const hasAsyncGetters = getters.some(
|
|
300
|
+
(g) => g.constructor.name === 'AsyncFunction',
|
|
301
|
+
)
|
|
302
|
+
|
|
303
|
+
if (hasAsyncGetters) {
|
|
304
|
+
return async (request: TRequest) => {
|
|
305
|
+
const argument: Record<string, any> = {}
|
|
306
|
+
const promises: Promise<void>[] = []
|
|
307
|
+
for (const getter of getters) {
|
|
308
|
+
const res = getter(argument, request)
|
|
309
|
+
if (res instanceof Promise) {
|
|
310
|
+
promises.push(res)
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
await Promise.all(promises)
|
|
314
|
+
return argument
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return (request: TRequest) => {
|
|
319
|
+
const argument: Record<string, any> = {}
|
|
320
|
+
for (const getter of getters) {
|
|
321
|
+
getter(argument, request)
|
|
322
|
+
}
|
|
323
|
+
return argument
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// ==========================================================================
|
|
328
|
+
// Protected Utilities
|
|
329
|
+
// ==========================================================================
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Checks if the URL pattern contains URL parameters.
|
|
333
|
+
*
|
|
334
|
+
* @param config - Endpoint configuration
|
|
335
|
+
* @returns true if URL contains '$' parameter markers
|
|
336
|
+
*/
|
|
337
|
+
protected hasUrlParams(config: TConfig): boolean {
|
|
338
|
+
return config.url.includes('$')
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Wraps handler execution with standardized error handling.
|
|
343
|
+
*
|
|
344
|
+
* Re-throws HttpExceptions as-is for framework error handlers.
|
|
345
|
+
* Other errors are re-thrown for global error handling.
|
|
346
|
+
*
|
|
347
|
+
* @param fn - Handler function to wrap
|
|
348
|
+
* @returns Wrapped function with error handling
|
|
349
|
+
*/
|
|
350
|
+
protected wrapWithErrorHandling<T extends (...args: any[]) => Promise<any>>(
|
|
351
|
+
fn: T,
|
|
352
|
+
): T {
|
|
353
|
+
return (async (...args: any[]) => {
|
|
354
|
+
try {
|
|
355
|
+
return await fn(...args)
|
|
356
|
+
} catch (error) {
|
|
357
|
+
// Re-throw HttpExceptions as-is for framework error handlers
|
|
358
|
+
if (error && typeof error === 'object' && 'statusCode' in error) {
|
|
359
|
+
throw error
|
|
360
|
+
}
|
|
361
|
+
// Re-throw unexpected errors for global error handling
|
|
362
|
+
throw error
|
|
363
|
+
}
|
|
364
|
+
}) as T
|
|
365
|
+
}
|
|
366
|
+
}
|
package/src/services/index.mts
CHANGED
|
@@ -3,6 +3,6 @@ import { InjectionToken } from '@navios/di'
|
|
|
3
3
|
import type { AbstractHttpAdapterInterface } from '../interfaces/index.mjs'
|
|
4
4
|
|
|
5
5
|
export const HttpAdapterToken =
|
|
6
|
-
InjectionToken.create<AbstractHttpAdapterInterface
|
|
6
|
+
InjectionToken.create<AbstractHttpAdapterInterface>(
|
|
7
7
|
'HttpAdapterToken',
|
|
8
8
|
)
|
package/src/tokens/index.mts
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AbstractAdapterInterface } from '../interfaces/index.mjs'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Type guard to check if adapter implements a specific method.
|
|
5
|
+
* Narrows the adapter type to include the method.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* if (adapterSupports(adapter, 'getServer')) {
|
|
10
|
+
* const server = adapter.getServer() // TypeScript knows this exists
|
|
11
|
+
* }
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export function adapterSupports<
|
|
15
|
+
TAdapter extends AbstractAdapterInterface,
|
|
16
|
+
TMethod extends string,
|
|
17
|
+
>(
|
|
18
|
+
adapter: TAdapter | null,
|
|
19
|
+
method: TMethod,
|
|
20
|
+
): adapter is TAdapter & Record<TMethod, (...args: unknown[]) => unknown> {
|
|
21
|
+
return (
|
|
22
|
+
adapter !== null &&
|
|
23
|
+
typeof (adapter as Record<string, unknown>)[method] === 'function'
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Asserts adapter supports a method, throws if not.
|
|
29
|
+
* Narrows type after assertion.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* assertAdapterSupports(adapter, 'enableCors')
|
|
34
|
+
* adapter.enableCors(options) // TypeScript knows this exists
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function assertAdapterSupports<
|
|
38
|
+
TAdapter extends AbstractAdapterInterface,
|
|
39
|
+
TMethod extends string,
|
|
40
|
+
>(
|
|
41
|
+
adapter: TAdapter | null,
|
|
42
|
+
method: TMethod,
|
|
43
|
+
): asserts adapter is TAdapter & Record<TMethod, (...args: unknown[]) => unknown> {
|
|
44
|
+
if (!adapterSupports(adapter, method)) {
|
|
45
|
+
throw new Error(`Current adapter does not implement '${method}()'`)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { adapterSupports, assertAdapterSupports } from './adapter-supports.util.mjs'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BJjk2X1S.d.mts","names":[],"sources":["../src/config/utils/helpers.mts","../src/config/types.mts","../src/config/config-service.interface.mts","../src/config/config.service.mts","../src/config/config.provider.mts","../src/decorators/controller.decorator.mts","../src/decorators/endpoint.decorator.mts","../src/metadata/handler.metadata.mts","../src/metadata/controller.metadata.mts","../src/metadata/module.metadata.mts","../src/metadata/navios-managed.metadata.mts","../src/interfaces/abstract-execution-context.inteface.mts","../src/logger/utils/cli-colors.util.mts","../src/logger/log-levels.mts","../src/logger/utils/filter-log-levelts.util.mts","../src/logger/utils/is-log-level.util.mts","../src/logger/utils/is-log-level-enabled.mts","../src/logger/utils/shared.utils.mts","../src/logger/logger-service.interface.mts","../src/logger/console-logger.service.mts","../src/logger/logger.service.mts","../src/logger/logger.tokens.mts","../src/interfaces/abstract-http-cors-options.interface.mts","../src/interfaces/abstract-http-listen-options.interface.mts","../src/interfaces/abstract-http-adapter.interface.mts","../src/interfaces/abstract-http-handler-adapter.interface.mts","../src/interfaces/can-activate.mts","../src/interfaces/http-header.mts","../src/interfaces/navios-module.mts","../src/services/module-loader.service.mts","../src/interfaces/plugin.interface.mts","../src/decorators/header.decorator.mts","../src/decorators/http-code.decorator.mts","../src/decorators/module.decorator.mts","../src/decorators/multipart.decorator.mts","../src/decorators/stream.decorator.mts","../src/decorators/use-guards.decorator.mts","../src/exceptions/http.exception.mts","../src/exceptions/bad-request.exception.mts","../src/exceptions/forbidden.exception.mts","../src/exceptions/internal-server-error.exception.mts","../src/exceptions/not-found.exception.mts","../src/exceptions/unauthorized.exception.mts","../src/exceptions/conflict.exception.mts","../src/responders/enums/framework-error.enum.mts","../src/responders/interfaces/problem-details.interface.mts","../src/responders/interfaces/error-response.interface.mts","../src/responders/interfaces/error-responder.interface.mts","../src/responders/services/error-response-producer.service.mts","../src/responders/services/forbidden-responder.service.mts","../src/responders/services/internal-server-error-responder.service.mts","../src/responders/services/not-found-responder.service.mts","../src/responders/services/validation-error-responder.service.mts","../src/responders/tokens/responder.tokens.mts","../src/services/instance-resolver.service.mts","../src/services/guard-runner.service.mts","../src/stores/request-id.store.mts","../src/tokens/endpoint-adapter.token.mts","../src/tokens/execution-context.token.mts","../src/tokens/http-adapter.token.mts","../src/tokens/multipart-adapter.token.mts","../src/navios.environment.mts","../src/navios.application.mts","../src/tokens/navios-options.token.mts","../src/tokens/reply.token.mts","../src/tokens/request.token.mts","../src/tokens/stream-adapter.token.mts","../src/tokens/xml-stream-adapter.token.mts","../src/attribute.factory.mts","../src/factories/endpoint-adapter.factory.mts","../src/factories/http-adapter.factory.mts","../src/factories/multipart-adapter.factory.mts","../src/factories/request.factory.mts","../src/factories/reply.factory.mts","../src/factories/stream-adapter.factory.mts","../src/factories/xml-stream-adapter.factory.mts","../src/navios.factory.mts"],"sourcesContent":[],"mappings":"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"}
|