stratal 0.0.6 → 0.0.8
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/dist/application.d.ts +10 -42
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +36 -77
- package/dist/application.js.map +1 -1
- package/dist/config/config.module.d.ts.map +1 -1
- package/dist/config/config.module.js +2 -1
- package/dist/config/config.module.js.map +1 -1
- package/dist/config/errors/config-module-not-initialized.error.d.ts +10 -0
- package/dist/config/errors/config-module-not-initialized.error.d.ts.map +1 -0
- package/dist/config/errors/config-module-not-initialized.error.js +12 -0
- package/dist/config/errors/config-module-not-initialized.error.js.map +1 -0
- package/dist/config/errors/index.d.ts +1 -0
- package/dist/config/errors/index.d.ts.map +1 -1
- package/dist/config/errors/index.js +1 -0
- package/dist/config/errors/index.js.map +1 -1
- package/dist/di/container.d.ts +5 -267
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/container.js +13 -288
- package/dist/di/container.js.map +1 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts +0 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts.map +1 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.js +0 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.js.map +1 -1
- package/dist/di/index.d.ts +0 -1
- package/dist/di/index.d.ts.map +1 -1
- package/dist/di/index.js +0 -1
- package/dist/di/index.js.map +1 -1
- package/dist/errors/error-codes.d.ts +2 -0
- package/dist/errors/error-codes.d.ts.map +1 -1
- package/dist/errors/error-codes.js +2 -0
- package/dist/errors/error-codes.js.map +1 -1
- package/dist/events/types.d.ts +1 -1
- package/dist/execution-context.d.ts +4 -0
- package/dist/execution-context.d.ts.map +1 -0
- package/dist/execution-context.js +2 -0
- package/dist/execution-context.js.map +1 -0
- package/dist/i18n/messages/en/errors.d.ts +2 -2
- package/dist/i18n/messages/en/errors.js +2 -2
- package/dist/i18n/messages/en/errors.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logger/services/logger.service.d.ts +2 -15
- package/dist/logger/services/logger.service.d.ts.map +1 -1
- package/dist/logger/services/logger.service.js +11 -16
- package/dist/logger/services/logger.service.js.map +1 -1
- package/dist/router/errors/hono-app-already-configured.error.d.ts +10 -0
- package/dist/router/errors/hono-app-already-configured.error.d.ts.map +1 -0
- package/dist/router/errors/hono-app-already-configured.error.js +12 -0
- package/dist/router/errors/hono-app-already-configured.error.js.map +1 -0
- package/dist/router/errors/index.d.ts +1 -2
- package/dist/router/errors/index.d.ts.map +1 -1
- package/dist/router/errors/index.js +1 -2
- package/dist/router/errors/index.js.map +1 -1
- package/dist/router/hono-app.d.ts +38 -0
- package/dist/router/hono-app.d.ts.map +1 -0
- package/dist/router/hono-app.js +128 -0
- package/dist/router/hono-app.js.map +1 -0
- package/dist/router/index.d.ts +3 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +6 -4
- package/dist/router/index.js.map +1 -1
- package/dist/router/router.tokens.d.ts +0 -28
- package/dist/router/router.tokens.d.ts.map +1 -1
- package/dist/router/router.tokens.js +0 -28
- package/dist/router/router.tokens.js.map +1 -1
- package/dist/router/services/index.d.ts +0 -1
- package/dist/router/services/index.d.ts.map +1 -1
- package/dist/router/services/index.js +0 -1
- package/dist/router/services/index.js.map +1 -1
- package/dist/stratal.d.ts +9 -26
- package/dist/stratal.d.ts.map +1 -1
- package/dist/stratal.js +22 -50
- package/dist/stratal.js.map +1 -1
- package/package.json +8 -8
- package/dist/di/request-context-store.d.ts +0 -122
- package/dist/di/request-context-store.d.ts.map +0 -1
- package/dist/di/request-context-store.js +0 -135
- package/dist/di/request-context-store.js.map +0 -1
- package/dist/router/errors/router-already-configured.error.d.ts +0 -5
- package/dist/router/errors/router-already-configured.error.d.ts.map +0 -1
- package/dist/router/errors/router-already-configured.error.js +0 -8
- package/dist/router/errors/router-already-configured.error.js.map +0 -1
- package/dist/router/errors/router-not-configured.error.d.ts +0 -5
- package/dist/router/errors/router-not-configured.error.d.ts.map +0 -1
- package/dist/router/errors/router-not-configured.error.js +0 -8
- package/dist/router/errors/router-not-configured.error.js.map +0 -1
- package/dist/router/router.service.d.ts +0 -62
- package/dist/router/router.service.d.ts.map +0 -1
- package/dist/router/router.service.js +0 -166
- package/dist/router/router.service.js.map +0 -1
- package/dist/router/services/request-scope.service.d.ts +0 -42
- package/dist/router/services/request-scope.service.d.ts.map +0 -1
- package/dist/router/services/request-scope.service.js +0 -76
- package/dist/router/services/request-scope.service.js.map +0 -1
package/dist/application.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Container } from './di/container';
|
|
2
2
|
import { type StratalEnv } from './env';
|
|
3
|
+
import type { StratalExecutionContext } from './execution-context';
|
|
3
4
|
import { LogLevel } from './logger';
|
|
4
5
|
import type { DynamicModule, ModuleClass } from './module/types';
|
|
5
6
|
import { type RouterContext } from './router';
|
|
7
|
+
import { HonoApp } from './router/hono-app';
|
|
6
8
|
export interface ApplicationConfig {
|
|
7
9
|
/** Root application module */
|
|
8
10
|
module: ModuleClass | DynamicModule;
|
|
@@ -14,7 +16,7 @@ export interface ApplicationConfig {
|
|
|
14
16
|
}
|
|
15
17
|
export interface ApplicationOptions extends ApplicationConfig {
|
|
16
18
|
env: StratalEnv;
|
|
17
|
-
ctx:
|
|
19
|
+
ctx: StratalExecutionContext;
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
22
|
* Application
|
|
@@ -23,19 +25,6 @@ export interface ApplicationOptions extends ApplicationConfig {
|
|
|
23
25
|
* - Global Container: All services (singletons via tsyringe native)
|
|
24
26
|
* - Request Container: Child of global, context-enriched instances per request
|
|
25
27
|
*
|
|
26
|
-
* **Architecture:**
|
|
27
|
-
* ```
|
|
28
|
-
* Container (manages global container internally)
|
|
29
|
-
* ↓
|
|
30
|
-
* All services registered via container.register()
|
|
31
|
-
* (auto-detects scope from decorators)
|
|
32
|
-
* ↓
|
|
33
|
-
* Request Container (child, per request)
|
|
34
|
-
* ↓
|
|
35
|
-
* Context-enriched instances via
|
|
36
|
-
* container.runInRequestScope() or container.createRequestScope()
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
28
|
* @example
|
|
40
29
|
* ```typescript
|
|
41
30
|
* const app = new Application({ module: AppModule, env, ctx })
|
|
@@ -44,7 +33,7 @@ export interface ApplicationOptions extends ApplicationConfig {
|
|
|
44
33
|
* // Access container via getter
|
|
45
34
|
* const service = app.container.resolve(MY_TOKEN)
|
|
46
35
|
*
|
|
47
|
-
* // Handle HTTP request (via
|
|
36
|
+
* // Handle HTTP request (via HonoApp)
|
|
48
37
|
* // Handle queue batch
|
|
49
38
|
* await app.handleQueue(batch, 'my-queue')
|
|
50
39
|
* ```
|
|
@@ -52,39 +41,31 @@ export interface ApplicationOptions extends ApplicationConfig {
|
|
|
52
41
|
export declare class Application {
|
|
53
42
|
/**
|
|
54
43
|
* Unified Container - manages all DI operations
|
|
55
|
-
* Use app.container to access registration and resolution methods
|
|
56
44
|
*/
|
|
57
45
|
private _container;
|
|
46
|
+
private honoApp;
|
|
58
47
|
private moduleRegistry;
|
|
59
48
|
private consumerRegistry;
|
|
60
49
|
private cronManager;
|
|
61
50
|
private initialized;
|
|
62
51
|
readonly env: StratalEnv;
|
|
63
|
-
readonly ctx: ExecutionContext;
|
|
64
52
|
private readonly appConfig;
|
|
65
|
-
constructor(
|
|
53
|
+
constructor({ env, ctx, ...config }: ApplicationOptions);
|
|
66
54
|
/**
|
|
67
55
|
* Get the Container instance
|
|
68
|
-
*
|
|
69
|
-
* Use for service registration and resolution:
|
|
70
|
-
* - app.container.register(ServiceClass)
|
|
71
|
-
* - app.container.resolve(TOKEN)
|
|
72
|
-
* - app.container.runInRequestScope(ctx, callback)
|
|
73
56
|
*/
|
|
74
57
|
get container(): Container;
|
|
58
|
+
/**
|
|
59
|
+
* Get the HonoApp instance
|
|
60
|
+
*/
|
|
61
|
+
get hono(): HonoApp;
|
|
75
62
|
initialize(): Promise<void>;
|
|
76
63
|
/**
|
|
77
64
|
* Resolve a service from the container
|
|
78
|
-
*
|
|
79
|
-
* @param token - DI token for the service
|
|
80
|
-
* @returns Resolved service instance
|
|
81
65
|
*/
|
|
82
66
|
resolve<T>(token: symbol): T;
|
|
83
67
|
/**
|
|
84
68
|
* Handle queue batch processing
|
|
85
|
-
*
|
|
86
|
-
* Creates a request scope with mock RouterContext and processes the batch.
|
|
87
|
-
* Queue name is passed for logging purposes; routing is by message type.
|
|
88
69
|
*/
|
|
89
70
|
handleQueue(batch: MessageBatch, queueName: string): Promise<void>;
|
|
90
71
|
/**
|
|
@@ -93,21 +74,13 @@ export declare class Application {
|
|
|
93
74
|
handleScheduled(controller: ScheduledController): Promise<void>;
|
|
94
75
|
/**
|
|
95
76
|
* Create mock RouterContext for queue/cron/seeder processing
|
|
96
|
-
*
|
|
97
|
-
* Use this when you need to create a request scope outside of HTTP context.
|
|
98
|
-
*
|
|
99
|
-
* @param locale - Locale for i18n (default: 'en')
|
|
100
|
-
* @returns Mock RouterContext suitable for runInRequestScope
|
|
101
77
|
*/
|
|
102
78
|
createMockRouterContext(locale?: string): RouterContext;
|
|
103
79
|
shutdown(): Promise<void>;
|
|
104
|
-
private registerRoutes;
|
|
105
80
|
private registerQueueConsumers;
|
|
106
81
|
private registerCronJobs;
|
|
107
82
|
/**
|
|
108
83
|
* Auto-wire `@Listener()` classes with the EventRegistry.
|
|
109
|
-
*
|
|
110
|
-
* Reads `@On()` metadata from each listener and registers handlers.
|
|
111
84
|
*/
|
|
112
85
|
private registerEventListeners;
|
|
113
86
|
/**
|
|
@@ -116,11 +89,6 @@ export declare class Application {
|
|
|
116
89
|
private registerLoggerService;
|
|
117
90
|
/**
|
|
118
91
|
* Register core services with explicit scope
|
|
119
|
-
*
|
|
120
|
-
* Scope is specified at registration time:
|
|
121
|
-
* - Singleton: Single instance shared globally
|
|
122
|
-
* - Request: New instance per request (container-scoped)
|
|
123
|
-
* - Transient: New instance per resolution (default)
|
|
124
92
|
*/
|
|
125
93
|
private registerCoreServices;
|
|
126
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAiE,QAAQ,EAAmB,MAAM,UAAU,CAAA;AAEnH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhE,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG3C,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,GAAG,aAAa,CAAA;IACnC,oEAAoE;IACpE,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,GAAG,EAAE,UAAU,CAAA;IACf,GAAG,EAAE,uBAAuB,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,UAAU,CAAW;IAE7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAQ;IAE3B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;gBAEjC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,kBAAkB;IA4BvD;;OAEG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,CAElB;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCjC;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAU5B;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrE;;OAEG;IACH,uBAAuB,CAAC,MAAM,SAAO,GAAG,aAAa;IAQ/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAY/B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
|
package/dist/application.js
CHANGED
|
@@ -10,7 +10,7 @@ import { ConsoleTransport, JsonFormatter, LOGGER_TOKENS, LoggerService, LogLevel
|
|
|
10
10
|
import { ModuleRegistry } from './module/module-registry';
|
|
11
11
|
import { OpenAPIModule } from './openapi';
|
|
12
12
|
import { QueueModule } from './queue/queue.module';
|
|
13
|
-
import {
|
|
13
|
+
import { HonoApp } from './router/hono-app';
|
|
14
14
|
/**
|
|
15
15
|
* Application
|
|
16
16
|
*
|
|
@@ -18,19 +18,6 @@ import { ROUTER_TOKENS, RouterService } from './router';
|
|
|
18
18
|
* - Global Container: All services (singletons via tsyringe native)
|
|
19
19
|
* - Request Container: Child of global, context-enriched instances per request
|
|
20
20
|
*
|
|
21
|
-
* **Architecture:**
|
|
22
|
-
* ```
|
|
23
|
-
* Container (manages global container internally)
|
|
24
|
-
* ↓
|
|
25
|
-
* All services registered via container.register()
|
|
26
|
-
* (auto-detects scope from decorators)
|
|
27
|
-
* ↓
|
|
28
|
-
* Request Container (child, per request)
|
|
29
|
-
* ↓
|
|
30
|
-
* Context-enriched instances via
|
|
31
|
-
* container.runInRequestScope() or container.createRequestScope()
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
21
|
* @example
|
|
35
22
|
* ```typescript
|
|
36
23
|
* const app = new Application({ module: AppModule, env, ctx })
|
|
@@ -39,7 +26,7 @@ import { ROUTER_TOKENS, RouterService } from './router';
|
|
|
39
26
|
* // Access container via getter
|
|
40
27
|
* const service = app.container.resolve(MY_TOKEN)
|
|
41
28
|
*
|
|
42
|
-
* // Handle HTTP request (via
|
|
29
|
+
* // Handle HTTP request (via HonoApp)
|
|
43
30
|
* // Handle queue batch
|
|
44
31
|
* await app.handleQueue(batch, 'my-queue')
|
|
45
32
|
* ```
|
|
@@ -47,28 +34,27 @@ import { ROUTER_TOKENS, RouterService } from './router';
|
|
|
47
34
|
export class Application {
|
|
48
35
|
/**
|
|
49
36
|
* Unified Container - manages all DI operations
|
|
50
|
-
* Use app.container to access registration and resolution methods
|
|
51
37
|
*/
|
|
52
38
|
_container;
|
|
39
|
+
honoApp;
|
|
53
40
|
moduleRegistry;
|
|
54
41
|
consumerRegistry;
|
|
55
42
|
cronManager;
|
|
56
43
|
initialized = false;
|
|
57
44
|
env;
|
|
58
|
-
ctx;
|
|
59
45
|
appConfig;
|
|
60
|
-
constructor(
|
|
61
|
-
this.env =
|
|
62
|
-
this.
|
|
63
|
-
|
|
46
|
+
constructor({ env, ctx, ...config }) {
|
|
47
|
+
this.env = env;
|
|
48
|
+
this.appConfig = config;
|
|
49
|
+
ApplicationError.captureStackTraces = env.ENVIRONMENT !== 'production';
|
|
64
50
|
// Create unified Container with explicit child container
|
|
65
51
|
this._container = new Container({
|
|
66
|
-
env: this.env,
|
|
67
|
-
ctx: this.ctx,
|
|
68
52
|
container: tsyringeRootContainer.createChildContainer()
|
|
69
53
|
});
|
|
70
|
-
// Register
|
|
54
|
+
// Register globally — env and ctx always available
|
|
71
55
|
this._container.registerValue(DI_TOKENS.Application, this);
|
|
56
|
+
this._container.registerValue(DI_TOKENS.CloudflareEnv, env);
|
|
57
|
+
this._container.registerValue(DI_TOKENS.ExecutionContext, ctx);
|
|
72
58
|
// Register core infrastructure inline
|
|
73
59
|
this.registerLoggerService();
|
|
74
60
|
this.registerCoreServices();
|
|
@@ -80,26 +66,25 @@ export class Application {
|
|
|
80
66
|
}
|
|
81
67
|
/**
|
|
82
68
|
* Get the Container instance
|
|
83
|
-
*
|
|
84
|
-
* Use for service registration and resolution:
|
|
85
|
-
* - app.container.register(ServiceClass)
|
|
86
|
-
* - app.container.resolve(TOKEN)
|
|
87
|
-
* - app.container.runInRequestScope(ctx, callback)
|
|
88
69
|
*/
|
|
89
70
|
get container() {
|
|
90
71
|
return this._container;
|
|
91
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Get the HonoApp instance
|
|
75
|
+
*/
|
|
76
|
+
get hono() {
|
|
77
|
+
return this.honoApp;
|
|
78
|
+
}
|
|
92
79
|
async initialize() {
|
|
93
80
|
if (this.initialized) {
|
|
94
81
|
return;
|
|
95
82
|
}
|
|
96
|
-
// Disable stack trace capture in production (expensive and stripped from responses)
|
|
97
|
-
ApplicationError.captureStackTraces = this.env.ENVIRONMENT !== 'production';
|
|
98
83
|
// Phase 1: Register core infrastructure modules (internal)
|
|
99
84
|
this.moduleRegistry.registerAll([
|
|
100
85
|
I18nModule,
|
|
101
|
-
OpenAPIModule,
|
|
102
|
-
QueueModule,
|
|
86
|
+
OpenAPIModule,
|
|
87
|
+
QueueModule,
|
|
103
88
|
CacheModule,
|
|
104
89
|
]);
|
|
105
90
|
// Phase 2: Register user's root module (traverses imports)
|
|
@@ -109,10 +94,13 @@ export class Application {
|
|
|
109
94
|
// Phase 4: Resolve managers from container
|
|
110
95
|
this.consumerRegistry = this._container.resolve(DI_TOKENS.ConsumerRegistry);
|
|
111
96
|
this.cronManager = this._container.resolve(DI_TOKENS.Cron);
|
|
112
|
-
// Phase 5:
|
|
113
|
-
this._container.
|
|
114
|
-
|
|
115
|
-
this.
|
|
97
|
+
// Phase 5: Create & configure HonoApp
|
|
98
|
+
const logger = this._container.resolve(LOGGER_TOKENS.LoggerService);
|
|
99
|
+
this.honoApp = new HonoApp(this._container, logger);
|
|
100
|
+
const middlewareConfigs = this.moduleRegistry.getAllMiddlewareConfigs();
|
|
101
|
+
const controllers = this.moduleRegistry.getAllControllers();
|
|
102
|
+
this.honoApp.configure(middlewareConfigs, controllers);
|
|
103
|
+
// Phase 6: Configure queues, cron, events
|
|
116
104
|
this.registerQueueConsumers();
|
|
117
105
|
this.registerCronJobs();
|
|
118
106
|
this.registerEventListeners();
|
|
@@ -120,9 +108,6 @@ export class Application {
|
|
|
120
108
|
}
|
|
121
109
|
/**
|
|
122
110
|
* Resolve a service from the container
|
|
123
|
-
*
|
|
124
|
-
* @param token - DI token for the service
|
|
125
|
-
* @returns Resolved service instance
|
|
126
111
|
*/
|
|
127
112
|
resolve(token) {
|
|
128
113
|
try {
|
|
@@ -136,24 +121,18 @@ export class Application {
|
|
|
136
121
|
}
|
|
137
122
|
/**
|
|
138
123
|
* Handle queue batch processing
|
|
139
|
-
*
|
|
140
|
-
* Creates a request scope with mock RouterContext and processes the batch.
|
|
141
|
-
* Queue name is passed for logging purposes; routing is by message type.
|
|
142
124
|
*/
|
|
143
125
|
async handleQueue(batch, queueName) {
|
|
144
|
-
// Extract locale from first message in batch
|
|
145
126
|
const firstMessage = batch.messages[0]?.body;
|
|
146
127
|
const locale = firstMessage?.metadata?.locale ?? 'en';
|
|
147
|
-
// Create mock RouterContext for queue context
|
|
148
128
|
const mockRouterContext = this.createMockRouterContext(locale);
|
|
149
|
-
|
|
150
|
-
await this._container.runInRequestScope(mockRouterContext, async () => {
|
|
129
|
+
await this._container.runInRequestScope(mockRouterContext, async (requestContainer) => {
|
|
151
130
|
try {
|
|
152
|
-
const queueManager =
|
|
131
|
+
const queueManager = requestContainer.resolve(DI_TOKENS.Queue);
|
|
153
132
|
await queueManager.processBatch(queueName, batch);
|
|
154
133
|
}
|
|
155
134
|
catch (error) {
|
|
156
|
-
const errorHandler =
|
|
135
|
+
const errorHandler = requestContainer.resolve(DI_TOKENS.ErrorHandler);
|
|
157
136
|
errorHandler.handle(error);
|
|
158
137
|
throw error;
|
|
159
138
|
}
|
|
@@ -163,14 +142,13 @@ export class Application {
|
|
|
163
142
|
* Handle scheduled cron trigger
|
|
164
143
|
*/
|
|
165
144
|
async handleScheduled(controller) {
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
await this._container.runInRequestScope(mockRouterContext, async () => {
|
|
145
|
+
const mockRouterContext = this.createMockRouterContext('en');
|
|
146
|
+
await this._container.runInRequestScope(mockRouterContext, async (requestContainer) => {
|
|
169
147
|
try {
|
|
170
148
|
await this.cronManager.executeScheduled(controller);
|
|
171
149
|
}
|
|
172
150
|
catch (error) {
|
|
173
|
-
const errorHandler =
|
|
151
|
+
const errorHandler = requestContainer.resolve(DI_TOKENS.ErrorHandler);
|
|
174
152
|
errorHandler.handle(error);
|
|
175
153
|
throw error;
|
|
176
154
|
}
|
|
@@ -178,11 +156,6 @@ export class Application {
|
|
|
178
156
|
}
|
|
179
157
|
/**
|
|
180
158
|
* Create mock RouterContext for queue/cron/seeder processing
|
|
181
|
-
*
|
|
182
|
-
* Use this when you need to create a request scope outside of HTTP context.
|
|
183
|
-
*
|
|
184
|
-
* @param locale - Locale for i18n (default: 'en')
|
|
185
|
-
* @returns Mock RouterContext suitable for runInRequestScope
|
|
186
159
|
*/
|
|
187
160
|
createMockRouterContext(locale = 'en') {
|
|
188
161
|
return {
|
|
@@ -192,15 +165,14 @@ export class Application {
|
|
|
192
165
|
};
|
|
193
166
|
}
|
|
194
167
|
async shutdown() {
|
|
168
|
+
if (!this.initialized)
|
|
169
|
+
return;
|
|
170
|
+
this.initialized = false;
|
|
195
171
|
await this.moduleRegistry.shutdown();
|
|
172
|
+
const logger = this._container.resolve(LOGGER_TOKENS.LoggerService);
|
|
173
|
+
logger.info('Disposing container...');
|
|
196
174
|
await this._container.dispose();
|
|
197
175
|
}
|
|
198
|
-
registerRoutes() {
|
|
199
|
-
const middlewareConfigs = this.moduleRegistry.getAllMiddlewareConfigs();
|
|
200
|
-
const controllers = this.moduleRegistry.getAllControllers();
|
|
201
|
-
const router = this._container.resolve(ROUTER_TOKENS.RouterService);
|
|
202
|
-
router.configure(middlewareConfigs, controllers);
|
|
203
|
-
}
|
|
204
176
|
registerQueueConsumers() {
|
|
205
177
|
for (const ConsumerClass of this.moduleRegistry.getAllConsumers()) {
|
|
206
178
|
const consumer = this._container.resolve(ConsumerClass);
|
|
@@ -215,8 +187,6 @@ export class Application {
|
|
|
215
187
|
}
|
|
216
188
|
/**
|
|
217
189
|
* Auto-wire `@Listener()` classes with the EventRegistry.
|
|
218
|
-
*
|
|
219
|
-
* Reads `@On()` metadata from each listener and registers handlers.
|
|
220
190
|
*/
|
|
221
191
|
registerEventListeners() {
|
|
222
192
|
const listeners = this.moduleRegistry.getAllListeners();
|
|
@@ -236,12 +206,9 @@ export class Application {
|
|
|
236
206
|
* Register LoggerService and dependencies
|
|
237
207
|
*/
|
|
238
208
|
registerLoggerService() {
|
|
239
|
-
// Get logging config with defaults
|
|
240
209
|
const logLevel = this.appConfig.logging?.level ?? LogLevel.INFO;
|
|
241
210
|
const formatter = this.appConfig.logging?.formatter ?? 'json';
|
|
242
|
-
// Register log level for injection
|
|
243
211
|
this._container.registerValue(LOGGER_TOKENS.LogLevelOptions, logLevel);
|
|
244
|
-
// Conditional formatter registration
|
|
245
212
|
this._container
|
|
246
213
|
.when(() => formatter === 'pretty')
|
|
247
214
|
.use(LOGGER_TOKENS.Formatter)
|
|
@@ -253,18 +220,10 @@ export class Application {
|
|
|
253
220
|
}
|
|
254
221
|
/**
|
|
255
222
|
* Register core services with explicit scope
|
|
256
|
-
*
|
|
257
|
-
* Scope is specified at registration time:
|
|
258
|
-
* - Singleton: Single instance shared globally
|
|
259
|
-
* - Request: New instance per request (container-scoped)
|
|
260
|
-
* - Transient: New instance per resolution (default)
|
|
261
223
|
*/
|
|
262
224
|
registerCoreServices() {
|
|
263
|
-
// Cron manager - singleton
|
|
264
225
|
this._container.registerSingleton(DI_TOKENS.Cron, CronManager);
|
|
265
|
-
// Error handler - transient (fresh instance each time with current I18n)
|
|
266
226
|
this._container.register(DI_TOKENS.ErrorHandler, GlobalErrorHandler);
|
|
267
|
-
// Event registry - singleton
|
|
268
227
|
this._container.registerSingleton(DI_TOKENS.EventRegistry, EventRegistry);
|
|
269
228
|
}
|
|
270
229
|
}
|
package/dist/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.module.d.ts","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.module.d.ts","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AAK3C,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAA;AAG3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGpD;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,kBAAkB,EAAE,CAAA;IAE1B;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;CACnC;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAUa,YAAa,YAAW,YAAY;IAC/C;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,aAAa;IAgB3D;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAiC3C"}
|
|
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var ConfigModule_1;
|
|
8
|
+
import { ConfigModuleNotInitializedError } from './errors';
|
|
8
9
|
import { DI_TOKENS } from '../di/tokens';
|
|
9
10
|
import { Scope } from '../di/types';
|
|
10
11
|
import { Module } from '../module';
|
|
@@ -81,7 +82,7 @@ let ConfigModule = ConfigModule_1 = class ConfigModule {
|
|
|
81
82
|
*/
|
|
82
83
|
onInitialize(context) {
|
|
83
84
|
if (!moduleOptions) {
|
|
84
|
-
throw new
|
|
85
|
+
throw new ConfigModuleNotInitializedError();
|
|
85
86
|
}
|
|
86
87
|
const env = context.container.resolve(DI_TOKENS.CloudflareEnv);
|
|
87
88
|
const configService = context.container.resolve(CONFIG_TOKENS.ConfigService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":";;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAgB,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAwBzD,wCAAwC;AACxC,IAAI,aAAa,GAA+B,IAAI,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAWI,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAA4B;QACzC,aAAa,GAAG,OAAO,CAAA;QAEvB,MAAM,SAAS,GAAe,EAAE,CAAA;QAEhC,oDAAoD;QACpD,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;QACxC,CAAC;QAED,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS;SACV,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAsB;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":";;;;;;;AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAgB,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAwBzD,wCAAwC;AACxC,IAAI,aAAa,GAA+B,IAAI,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAWI,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAA4B;QACzC,aAAa,GAAG,OAAO,CAAA;QAEvB,MAAM,SAAS,GAAe,EAAE,CAAA;QAEhC,oDAAoD;QACpD,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAA;QACxC,CAAC;QAED,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS;SACV,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAsB;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,+BAA+B,EAAE,CAAA;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAU,SAAS,CAAC,aAAa,CAAC,CAAA;QACvE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAgB,aAAa,CAAC,aAAa,CAAC,CAAA;QAE3F,0CAA0C;QAC1C,MAAM,YAAY,GAA4B,EAAE,CAAA;QAEhD,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;YAC3C,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5D,CAAC;QAED,8BAA8B;QAC9B,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YACnE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,qBAAqB,CAC7B,iCAAiC,EACjC,MAAM,CAAC,KAAK,CACb,CAAA;YACH,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,aAAa,CAAC,UAAU,CAAC,YAA4B,CAAC,CAAA;QAEtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;YAC/C,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACvD,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AA5DY,YAAY;IAVxB,MAAM,CAAC;QACN,SAAS,EAAE;YACT,0EAA0E;YAC1E;gBACE,OAAO,EAAE,aAAa,CAAC,aAAa;gBACpC,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,KAAK,CAAC,SAAS;aACvB;SACF;KACF,CAAC;GACW,YAAY,CA4DxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ApplicationError } from '../../errors';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when ConfigModule's onInitialize runs but forRoot() was never called.
|
|
4
|
+
*
|
|
5
|
+
* This means the module was imported without calling ConfigModule.forRoot({ load: [...] }).
|
|
6
|
+
*/
|
|
7
|
+
export declare class ConfigModuleNotInitializedError extends ApplicationError {
|
|
8
|
+
constructor();
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=config-module-not-initialized.error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-module-not-initialized.error.d.ts","sourceRoot":"","sources":["../../../src/config/errors/config-module-not-initialized.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,cAAc,CAAA;AAE5D;;;;GAIG;AACH,qBAAa,+BAAgC,SAAQ,gBAAgB;;CAOpE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ApplicationError, ERROR_CODES } from '../../errors';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when ConfigModule's onInitialize runs but forRoot() was never called.
|
|
4
|
+
*
|
|
5
|
+
* This means the module was imported without calling ConfigModule.forRoot({ load: [...] }).
|
|
6
|
+
*/
|
|
7
|
+
export class ConfigModuleNotInitializedError extends ApplicationError {
|
|
8
|
+
constructor() {
|
|
9
|
+
super('errors.configModuleNotInitialized', ERROR_CODES.SYSTEM.CONFIG_MODULE_NOT_INITIALIZED);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=config-module-not-initialized.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-module-not-initialized.error.js","sourceRoot":"","sources":["../../../src/config/errors/config-module-not-initialized.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE5D;;;;GAIG;AACH,MAAM,OAAO,+BAAgC,SAAQ,gBAAgB;IACnE;QACE,KAAK,CACH,mCAAmC,EACnC,WAAW,CAAC,MAAM,CAAC,6BAA6B,CACjD,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AACrD,cAAc,gCAAgC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AACrD,cAAc,gCAAgC,CAAA"}
|