@asenajs/asena 0.3.3 → 0.4.0
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 +165 -140
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/adapter/AsenaAdapter.d.ts +19 -3
- package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
- package/dist/lib/adapter/AsenaWebsocketAdapter.d.ts +2 -2
- package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
- package/dist/lib/adapter/types/RouteParams.d.ts +3 -0
- package/dist/lib/adapter/types/ServeOptions.d.ts +2 -2
- package/dist/lib/adapter/types/index.d.ts +4 -4
- package/dist/lib/adapter/types/index.js +4 -4
- package/dist/lib/adapter/types/index.js.map +1 -1
- package/dist/lib/ioc/CircularDependencyDetector.d.ts +49 -0
- package/dist/lib/ioc/CircularDependencyDetector.js +69 -0
- package/dist/lib/ioc/CircularDependencyDetector.js.map +1 -0
- package/dist/lib/ioc/Container.d.ts +9 -0
- package/dist/lib/ioc/Container.js +42 -11
- package/dist/lib/ioc/Container.js.map +1 -1
- package/dist/lib/ioc/CoreContainer.d.ts +78 -0
- package/dist/lib/ioc/CoreContainer.js +135 -0
- package/dist/lib/ioc/CoreContainer.js.map +1 -0
- package/dist/lib/ioc/IocEngine.d.ts +16 -6
- package/dist/lib/ioc/IocEngine.js +35 -7
- package/dist/lib/ioc/IocEngine.js.map +1 -1
- package/dist/lib/ioc/component/index.d.ts +1 -1
- package/dist/lib/ioc/component/index.js +1 -1
- package/dist/lib/ioc/component/index.js.map +1 -1
- package/dist/lib/ioc/constants/ComponentConstants.d.ts +27 -18
- package/dist/lib/ioc/constants/ComponentConstants.js +34 -20
- package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
- package/dist/lib/ioc/decorators/CoreService.d.ts +8 -0
- package/dist/lib/ioc/decorators/CoreService.js +27 -0
- package/dist/lib/ioc/decorators/CoreService.js.map +1 -0
- package/dist/lib/ioc/decorators/index.d.ts +1 -0
- package/dist/lib/ioc/decorators/index.js +2 -0
- package/dist/lib/ioc/decorators/index.js.map +1 -0
- package/dist/lib/ioc/index.d.ts +5 -0
- package/dist/lib/ioc/index.js +5 -0
- package/dist/lib/ioc/index.js.map +1 -1
- package/dist/lib/ioc/types/CoreBootstrapPhase.d.ts +15 -0
- package/dist/lib/ioc/types/CoreBootstrapPhase.js +17 -0
- package/dist/lib/ioc/types/CoreBootstrapPhase.js.map +1 -0
- package/dist/lib/ioc/types/ICoreService.d.ts +9 -0
- package/dist/lib/ioc/types/ICoreService.js +2 -0
- package/dist/lib/ioc/types/ICoreService.js.map +1 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.d.ts +18 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.js +23 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.js.map +1 -0
- package/dist/lib/ioc/types/decorators/ControllerParams.d.ts +1 -1
- package/dist/lib/ioc/types/index.d.ts +3 -0
- package/dist/lib/ioc/types/index.js +3 -0
- package/dist/lib/ioc/types/index.js.map +1 -1
- package/dist/lib/server/AsenaServer.d.ts +85 -14
- package/dist/lib/server/AsenaServer.js +169 -61
- package/dist/lib/server/AsenaServer.js.map +1 -1
- package/dist/lib/server/AsenaServerFactory.d.ts +26 -0
- package/dist/lib/server/AsenaServerFactory.js +58 -0
- package/dist/lib/server/AsenaServerFactory.js.map +1 -0
- package/dist/lib/server/config/AsenaConfig.d.ts +91 -18
- package/dist/lib/server/decorators/Override.js +1 -1
- package/dist/lib/server/decorators/Override.js.map +1 -1
- package/dist/lib/server/decorators/components/Config.d.ts +1 -1
- package/dist/lib/server/decorators/components/Config.js +1 -1
- package/dist/lib/server/decorators/components/Config.js.map +1 -1
- package/dist/lib/server/decorators/components/Controller.d.ts +1 -1
- package/dist/lib/server/decorators/components/Controller.js +2 -2
- package/dist/lib/server/decorators/components/Controller.js.map +1 -1
- package/dist/lib/server/decorators/components/Middleware.js +2 -2
- package/dist/lib/server/decorators/components/Middleware.js.map +1 -1
- package/dist/lib/server/decorators/components/Schedule.d.ts +1 -1
- package/dist/lib/server/decorators/components/Schedule.js +2 -2
- package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
- package/dist/lib/server/decorators/components/WebSocket.d.ts +1 -1
- package/dist/lib/server/decorators/components/WebSocket.js +2 -2
- package/dist/lib/server/decorators/components/WebSocket.js.map +1 -1
- package/dist/lib/server/decorators/index.d.ts +2 -0
- package/dist/lib/server/decorators/index.js +2 -0
- package/dist/lib/server/decorators/index.js.map +1 -1
- package/dist/lib/server/index.d.ts +2 -0
- package/dist/lib/server/index.js +2 -0
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/src/services/PrepareConfigService.d.ts +9 -5
- package/dist/lib/server/src/services/PrepareConfigService.js +32 -7
- package/dist/lib/server/src/services/PrepareConfigService.js.map +1 -1
- package/dist/lib/server/src/services/PrepareMiddlewareService.d.ts +8 -5
- package/dist/lib/server/src/services/PrepareMiddlewareService.js +28 -7
- package/dist/lib/server/src/services/PrepareMiddlewareService.js.map +1 -1
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.d.ts +8 -5
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.js +27 -6
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.js.map +1 -1
- package/dist/lib/server/src/services/PrepareValidatorService.d.ts +8 -5
- package/dist/lib/server/src/services/PrepareValidatorService.js +27 -6
- package/dist/lib/server/src/services/PrepareValidatorService.js.map +1 -1
- package/dist/lib/server/src/services/PrepareWebsocketService.d.ts +8 -5
- package/dist/lib/server/src/services/PrepareWebsocketService.js +28 -9
- package/dist/lib/server/src/services/PrepareWebsocketService.js.map +1 -1
- package/dist/lib/server/web/decorators/http.base.d.ts +1 -1
- package/dist/lib/server/web/decorators/http.base.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Connect.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Delete.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Get.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Head.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Options.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Patch.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Post.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Put.d.ts +1 -1
- package/dist/lib/server/web/decorators/methods/Trace.d.ts +1 -1
- package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
- package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +1 -1
- package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
- package/dist/lib/server/web/websocket/index.d.ts +1 -1
- package/dist/lib/server/web/websocket/index.js +1 -1
- package/dist/lib/server/web/websocket/index.js.map +1 -1
- package/dist/lib/utils/patternMatcher.d.ts +41 -0
- package/dist/lib/utils/patternMatcher.js +99 -0
- package/dist/lib/utils/patternMatcher.js.map +1 -0
- package/dist/lib/utils/typedMetadata.d.ts +3 -3
- package/dist/lib/utils/typedMetadata.js.map +1 -1
- package/package.json +12 -7
- package/dist/lib/server/src/PrepareService.d.ts +0 -8
- package/dist/lib/server/src/PrepareService.js +0 -9
- package/dist/lib/server/src/PrepareService.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentConstants.js","sourceRoot":"","sources":["../../../../lib/ioc/constants/ComponentConstants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ComponentConstants.js","sourceRoot":"","sources":["../../../../lib/ioc/constants/ComponentConstants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAE7B,wDAAwD;IACjD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAErD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE7D,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE/D,MAAM,CAAU,iBAAiB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAEvE,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3D,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE/D,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAErE,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3D,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE7D,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE1D,sBAAsB;IACf,MAAM,CAAU,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAElE,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE7D,sBAAsB;IACf,MAAM,CAAU,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAElE,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAErE,iBAAiB;IACV,MAAM,CAAU,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAEpD,MAAM,CAAU,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAElE,MAAM,CAAU,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAErE,qBAAqB;IACd,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,CAAU,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEjF,wBAAwB;IACjB,MAAM,CAAU,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const CORE_SERVICE: unique symbol;
|
|
2
|
+
/**
|
|
3
|
+
* @description Decorator for marking core framework services
|
|
4
|
+
* Core services are always singletons and managed by CoreContainer
|
|
5
|
+
* @param {string} name - Optional service name (defaults to class name)
|
|
6
|
+
* @returns {Function} Class decorator
|
|
7
|
+
*/
|
|
8
|
+
export declare function CoreService(name?: string): (target: any) => void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineTypedMetadata, getOwnTypedMetadata } from '../../utils/typedMetadata';
|
|
2
|
+
import { ComponentConstants } from '../constants';
|
|
3
|
+
import { Scope } from '../component';
|
|
4
|
+
export const CORE_SERVICE = Symbol('CORE_SERVICE');
|
|
5
|
+
/**
|
|
6
|
+
* @description Decorator for marking core framework services
|
|
7
|
+
* Core services are always singletons and managed by CoreContainer
|
|
8
|
+
* @param {string} name - Optional service name (defaults to class name)
|
|
9
|
+
* @returns {Function} Class decorator
|
|
10
|
+
*/
|
|
11
|
+
export function CoreService(name) {
|
|
12
|
+
return function (target) {
|
|
13
|
+
defineTypedMetadata(CORE_SERVICE, true, target);
|
|
14
|
+
const serviceName = name || target.name;
|
|
15
|
+
defineTypedMetadata(ComponentConstants.NameKey, serviceName, target);
|
|
16
|
+
defineTypedMetadata(ComponentConstants.ScopeKey, Scope.SINGLETON, target);
|
|
17
|
+
// Initialize dependency metadata for injection to work
|
|
18
|
+
if (getOwnTypedMetadata(ComponentConstants.DependencyKey, target) === undefined) {
|
|
19
|
+
defineTypedMetadata(ComponentConstants.DependencyKey, {}, target);
|
|
20
|
+
}
|
|
21
|
+
// Initialize strategy metadata for injection to work
|
|
22
|
+
if (getOwnTypedMetadata(ComponentConstants.StrategyKey, target) === undefined) {
|
|
23
|
+
defineTypedMetadata(ComponentConstants.StrategyKey, {}, target);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=CoreService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoreService.js","sourceRoot":"","sources":["../../../../lib/ioc/decorators/CoreService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,UAAU,MAAW;QAC1B,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;QAExC,mBAAmB,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACrE,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE1E,uDAAuD;QACvD,IAAI,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9F,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAClF,CAAC;QAED,qDAAqD;QACrD,IAAI,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1F,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CoreService';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/ioc/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
package/dist/lib/ioc/index.d.ts
CHANGED
package/dist/lib/ioc/index.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
export * from './IocEngine';
|
|
2
2
|
export * from './Container';
|
|
3
|
+
export * from './CoreContainer';
|
|
4
|
+
export * from './CircularDependencyDetector';
|
|
5
|
+
export * from './decorators';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './constants';
|
|
3
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/ioc/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/ioc/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Enum representing the bootstrap phases of the CoreContainer
|
|
3
|
+
* These phases define the order in which core services are initialized
|
|
4
|
+
*/
|
|
5
|
+
export declare enum CoreBootstrapPhase {
|
|
6
|
+
CONTAINER_INIT = "CONTAINER_INIT",
|
|
7
|
+
LOGGER_INIT = "LOGGER_INIT",
|
|
8
|
+
IOC_ENGINE_INIT = "IOC_ENGINE_INIT",
|
|
9
|
+
HTTP_ADAPTER_INIT = "HTTP_ADAPTER_INIT",
|
|
10
|
+
PREPARE_SERVICES_INIT = "PREPARE_SERVICES_INIT",
|
|
11
|
+
USER_COMPONENTS_SCAN = "USER_COMPONENTS_SCAN",
|
|
12
|
+
USER_COMPONENTS_INIT = "USER_COMPONENTS_INIT",
|
|
13
|
+
APPLICATION_SETUP = "APPLICATION_SETUP",
|
|
14
|
+
SERVER_READY = "SERVER_READY"
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Enum representing the bootstrap phases of the CoreContainer
|
|
3
|
+
* These phases define the order in which core services are initialized
|
|
4
|
+
*/
|
|
5
|
+
export var CoreBootstrapPhase;
|
|
6
|
+
(function (CoreBootstrapPhase) {
|
|
7
|
+
CoreBootstrapPhase["CONTAINER_INIT"] = "CONTAINER_INIT";
|
|
8
|
+
CoreBootstrapPhase["LOGGER_INIT"] = "LOGGER_INIT";
|
|
9
|
+
CoreBootstrapPhase["IOC_ENGINE_INIT"] = "IOC_ENGINE_INIT";
|
|
10
|
+
CoreBootstrapPhase["HTTP_ADAPTER_INIT"] = "HTTP_ADAPTER_INIT";
|
|
11
|
+
CoreBootstrapPhase["PREPARE_SERVICES_INIT"] = "PREPARE_SERVICES_INIT";
|
|
12
|
+
CoreBootstrapPhase["USER_COMPONENTS_SCAN"] = "USER_COMPONENTS_SCAN";
|
|
13
|
+
CoreBootstrapPhase["USER_COMPONENTS_INIT"] = "USER_COMPONENTS_INIT";
|
|
14
|
+
CoreBootstrapPhase["APPLICATION_SETUP"] = "APPLICATION_SETUP";
|
|
15
|
+
CoreBootstrapPhase["SERVER_READY"] = "SERVER_READY";
|
|
16
|
+
})(CoreBootstrapPhase || (CoreBootstrapPhase = {}));
|
|
17
|
+
//# sourceMappingURL=CoreBootstrapPhase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoreBootstrapPhase.js","sourceRoot":"","sources":["../../../../lib/ioc/types/CoreBootstrapPhase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,uDAAiC,CAAA;IACjC,iDAA2B,CAAA;IAC3B,yDAAmC,CAAA;IACnC,6DAAuC,CAAA;IACvC,qEAA+C,CAAA;IAC/C,mEAA6C,CAAA;IAC7C,mEAA6C,CAAA;IAC7C,6DAAuC,CAAA;IACvC,mDAA6B,CAAA;AAC/B,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,QAU7B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Interface for core framework services
|
|
3
|
+
* Provides lifecycle hooks for initialization and cleanup
|
|
4
|
+
*/
|
|
5
|
+
export interface ICoreService {
|
|
6
|
+
readonly serviceName: string;
|
|
7
|
+
onInit?(): Promise<void> | void;
|
|
8
|
+
onDestroy?(): Promise<void> | void;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICoreService.js","sourceRoot":"","sources":["../../../../lib/ioc/types/ICoreService.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Object containing all core service names
|
|
3
|
+
* Used for type-safe service resolution and plugin system access
|
|
4
|
+
* All core services are managed by CoreContainer and AsenaServerFactory
|
|
5
|
+
*/
|
|
6
|
+
export declare enum ICoreServiceNames {
|
|
7
|
+
CONTAINER = "Container",
|
|
8
|
+
SERVER_LOGGER = "ServerLogger",
|
|
9
|
+
IOC_ENGINE = "IocEngine",
|
|
10
|
+
ASENA_ADAPTER = "AsenaAdapter",
|
|
11
|
+
PREPARE_MIDDLEWARE_SERVICE = "PrepareMiddlewareService",
|
|
12
|
+
PREPARE_CONFIG_SERVICE = "PrepareConfigService",
|
|
13
|
+
PREPARE_WEBSOCKET_SERVICE = "PrepareWebsocketService",
|
|
14
|
+
PREPARE_VALIDATOR_SERVICE = "PrepareValidatorService",
|
|
15
|
+
PREPARE_STATIC_SERVE_CONFIG_SERVICE = "PrepareStaticServeConfigService",
|
|
16
|
+
CORE_CONTAINER = "CoreContainer",
|
|
17
|
+
ASENA_SERVER = "AsenaServer"
|
|
18
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Object containing all core service names
|
|
3
|
+
* Used for type-safe service resolution and plugin system access
|
|
4
|
+
* All core services are managed by CoreContainer and AsenaServerFactory
|
|
5
|
+
*/
|
|
6
|
+
export var ICoreServiceNames;
|
|
7
|
+
(function (ICoreServiceNames) {
|
|
8
|
+
// Core Infrastructure Services (Phase 1-4)
|
|
9
|
+
ICoreServiceNames["CONTAINER"] = "Container";
|
|
10
|
+
ICoreServiceNames["SERVER_LOGGER"] = "ServerLogger";
|
|
11
|
+
ICoreServiceNames["IOC_ENGINE"] = "IocEngine";
|
|
12
|
+
ICoreServiceNames["ASENA_ADAPTER"] = "AsenaAdapter";
|
|
13
|
+
// Prepare Services (Phase 5)
|
|
14
|
+
ICoreServiceNames["PREPARE_MIDDLEWARE_SERVICE"] = "PrepareMiddlewareService";
|
|
15
|
+
ICoreServiceNames["PREPARE_CONFIG_SERVICE"] = "PrepareConfigService";
|
|
16
|
+
ICoreServiceNames["PREPARE_WEBSOCKET_SERVICE"] = "PrepareWebsocketService";
|
|
17
|
+
ICoreServiceNames["PREPARE_VALIDATOR_SERVICE"] = "PrepareValidatorService";
|
|
18
|
+
ICoreServiceNames["PREPARE_STATIC_SERVE_CONFIG_SERVICE"] = "PrepareStaticServeConfigService";
|
|
19
|
+
// Factory Services (Phase 6+)
|
|
20
|
+
ICoreServiceNames["CORE_CONTAINER"] = "CoreContainer";
|
|
21
|
+
ICoreServiceNames["ASENA_SERVER"] = "AsenaServer";
|
|
22
|
+
})(ICoreServiceNames || (ICoreServiceNames = {}));
|
|
23
|
+
//# sourceMappingURL=ICoreServiceNamesType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICoreServiceNamesType.js","sourceRoot":"","sources":["../../../../lib/ioc/types/ICoreServiceNamesType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,iBAiBX;AAjBD,WAAY,iBAAiB;IAC3B,2CAA2C;IAC3C,4CAAuB,CAAA;IACvB,mDAA8B,CAAA;IAC9B,6CAAwB,CAAA;IACxB,mDAA8B,CAAA;IAE9B,6BAA6B;IAC7B,4EAAuD,CAAA;IACvD,oEAA+C,CAAA;IAC/C,0EAAqD,CAAA;IACrD,0EAAqD,CAAA;IACrD,4FAAuE,CAAA;IAEvE,8BAA8B;IAC9B,qDAAgC,CAAA;IAChC,iDAA4B,CAAA;AAC9B,CAAC,EAjBW,iBAAiB,KAAjB,iBAAiB,QAiB5B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComponentParams } from './ComponentParams';
|
|
2
2
|
import type { AsenaContext } from '../../../adapter';
|
|
3
|
-
import type { MiddlewareClass } from
|
|
3
|
+
import type { MiddlewareClass } from '../../../server/web/middleware';
|
|
4
4
|
export interface ControllerParams<C extends AsenaContext<any, any> = AsenaContext<any, any>> extends ComponentParams {
|
|
5
5
|
path: string;
|
|
6
6
|
middlewares?: MiddlewareClass<C>[];
|
|
@@ -6,3 +6,6 @@ export * from './decorators/ScheduleParams';
|
|
|
6
6
|
export * from './IocConfig';
|
|
7
7
|
export * from './InjectableComponent';
|
|
8
8
|
export * from './ContainerService';
|
|
9
|
+
export * from './ICoreService';
|
|
10
|
+
export * from './CoreBootstrapPhase';
|
|
11
|
+
export { ICoreServiceNames } from './ICoreServiceNamesType';
|
|
@@ -6,4 +6,7 @@ export * from './decorators/ScheduleParams';
|
|
|
6
6
|
export * from './IocConfig';
|
|
7
7
|
export * from './InjectableComponent';
|
|
8
8
|
export * from './ContainerService';
|
|
9
|
+
export * from './ICoreService';
|
|
10
|
+
export * from './CoreBootstrapPhase';
|
|
11
|
+
export { ICoreServiceNames } from './ICoreServiceNamesType';
|
|
9
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/ioc/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/ioc/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,32 +1,103 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { Container } from '../ioc';
|
|
1
|
+
import { type CoreContainer, type ICoreService } from '../ioc';
|
|
3
2
|
import type { AsenaAdapter } from '../adapter';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @description AsenaServer - Main server class for Asena framework
|
|
5
|
+
* Now a core service managed by IoC container with field injection
|
|
6
|
+
*/
|
|
7
|
+
export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements ICoreService {
|
|
8
|
+
serviceName: string;
|
|
9
|
+
private _coreContainer;
|
|
10
|
+
private _adapter;
|
|
10
11
|
private _logger;
|
|
11
|
-
private readonly _adapter;
|
|
12
12
|
private prepareMiddleware;
|
|
13
13
|
private prepareConfigService;
|
|
14
14
|
private prepareWebsocketService;
|
|
15
15
|
private prepareValidatorService;
|
|
16
16
|
private prepareStaticServeConfigService;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
private _port;
|
|
18
|
+
private _gc;
|
|
19
|
+
private controllers;
|
|
20
|
+
/**
|
|
21
|
+
* @description Lifecycle hook - called after dependencies are injected
|
|
22
|
+
* @returns {void}
|
|
23
|
+
*/
|
|
24
|
+
onInit(): void;
|
|
25
|
+
/**
|
|
26
|
+
* @description Start the server
|
|
27
|
+
* Main entry point after factory creation
|
|
28
|
+
* @returns {Promise<void>}
|
|
29
|
+
*/
|
|
30
|
+
start(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* @description Configure server port
|
|
33
|
+
* Builder pattern for API compatibility
|
|
34
|
+
* @param {number} port - Port number
|
|
35
|
+
* @returns {this}
|
|
36
|
+
*/
|
|
21
37
|
port(port: number): this;
|
|
22
|
-
|
|
38
|
+
/**
|
|
39
|
+
* @description Get current CoreContainer instance
|
|
40
|
+
* @returns {CoreContainer}
|
|
41
|
+
*/
|
|
42
|
+
get coreContainer(): CoreContainer;
|
|
43
|
+
/**
|
|
44
|
+
* @description Initialize and register all controllers
|
|
45
|
+
* @returns {Promise<void>}
|
|
46
|
+
*/
|
|
23
47
|
private initializeControllers;
|
|
48
|
+
/**
|
|
49
|
+
* @description Validate and set controllers from container
|
|
50
|
+
* @returns {Promise<void>}
|
|
51
|
+
*/
|
|
24
52
|
private validateAndSetControllers;
|
|
53
|
+
/**
|
|
54
|
+
* @description Prepare static serve configuration
|
|
55
|
+
* @param {StaticServeClass} staticServeClass - Static serve class
|
|
56
|
+
* @returns {Promise<BaseStaticServeParams>}
|
|
57
|
+
*/
|
|
25
58
|
private prepareStaticServeConfig;
|
|
59
|
+
/**
|
|
60
|
+
* @description Prepare top-level middlewares for controller or websocket
|
|
61
|
+
* @param {PrepareMiddlewareParams} params - Middleware parameters
|
|
62
|
+
* @param {boolean} websocket - Whether this is for websocket
|
|
63
|
+
* @returns {Promise<BaseMiddleware[]>}
|
|
64
|
+
*/
|
|
26
65
|
private prepareTopMiddlewares;
|
|
66
|
+
/**
|
|
67
|
+
* @description Prepare validator instance
|
|
68
|
+
* @param {ValidatorClass<any>} Validator - Validator class
|
|
69
|
+
* @returns {Promise<BaseValidator>}
|
|
70
|
+
*/
|
|
27
71
|
private prepareValidator;
|
|
72
|
+
/**
|
|
73
|
+
* @description Prepare route-level middlewares
|
|
74
|
+
* @param {ApiParams} middlewareParams - Middleware parameters
|
|
75
|
+
* @returns {Promise<BaseMiddleware[]>}
|
|
76
|
+
*/
|
|
28
77
|
private prepareRouteMiddleware;
|
|
78
|
+
/**
|
|
79
|
+
* @description Prepare middlewares from classes
|
|
80
|
+
* @param {MiddlewareClass[]} middlewares - Middleware classes
|
|
81
|
+
* @returns {Promise<BaseMiddleware[]>}
|
|
82
|
+
*/
|
|
29
83
|
private prepareMiddlewares;
|
|
84
|
+
/**
|
|
85
|
+
* @description Prepare and register WebSocket routes
|
|
86
|
+
* @returns {Promise<void>}
|
|
87
|
+
*/
|
|
30
88
|
private prepareWebSocket;
|
|
89
|
+
/**
|
|
90
|
+
* @description Normalizes global middleware entry to config format
|
|
91
|
+
* Handles backward compatibility (MiddlewareClass → GlobalMiddlewareConfig)
|
|
92
|
+
*
|
|
93
|
+
* @param entry - Middleware entry (class or config object)
|
|
94
|
+
* @returns Normalized config object
|
|
95
|
+
*/
|
|
96
|
+
private normalizeMiddlewareEntry;
|
|
97
|
+
/**
|
|
98
|
+
* @description Prepare and apply configuration
|
|
99
|
+
* Updated to support pattern-based global middlewares
|
|
100
|
+
* @returns {Promise<void>}
|
|
101
|
+
*/
|
|
31
102
|
private prepareConfigs;
|
|
32
103
|
}
|