@asenajs/asena 0.2.1 → 0.3.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/dist/lib/adapter/AsenaAdapter.d.ts +18 -15
- package/dist/lib/adapter/AsenaAdapter.js +9 -19
- package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
- package/dist/lib/adapter/AsenaContext.d.ts +1 -1
- package/dist/lib/adapter/AsenaWebsocketAdapter.d.ts +10 -27
- package/dist/lib/adapter/AsenaWebsocketAdapter.js +4 -25
- package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
- package/dist/lib/adapter/types/ApiParams.d.ts +3 -3
- package/dist/lib/adapter/types/BaseStaticServeParams.d.ts +12 -0
- package/dist/lib/adapter/types/BaseStaticServeParams.js +2 -0
- package/dist/lib/adapter/types/BaseStaticServeParams.js.map +1 -0
- package/dist/lib/adapter/types/RouteParams.d.ts +11 -4
- package/dist/lib/adapter/types/WebSocketRegistry.d.ts +1 -7
- package/dist/lib/adapter/types/index.d.ts +1 -1
- package/dist/lib/adapter/types/index.js +1 -1
- package/dist/lib/adapter/types/index.js.map +1 -1
- package/dist/lib/ioc/Container.js +2 -4
- package/dist/lib/ioc/Container.js.map +1 -1
- package/dist/lib/ioc/constants/ComponentConstants.d.ts +2 -1
- package/dist/lib/ioc/constants/ComponentConstants.js +1 -0
- package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
- package/dist/lib/ioc/helper/iocHelper.d.ts +1 -5
- package/dist/lib/ioc/helper/iocHelper.js.map +1 -1
- package/dist/lib/logger/defaults.d.ts +4 -0
- package/dist/lib/logger/defaults.js +5 -0
- package/dist/lib/logger/defaults.js.map +1 -0
- package/dist/lib/logger/index.d.ts +1 -1
- package/dist/lib/logger/index.js +1 -1
- package/dist/lib/logger/index.js.map +1 -1
- package/dist/lib/server/AsenaServer.d.ts +9 -4
- package/dist/lib/server/AsenaServer.js +42 -91
- package/dist/lib/server/AsenaServer.js.map +1 -1
- package/dist/lib/server/decorators/Override.js +2 -2
- package/dist/lib/server/decorators/Override.js.map +1 -1
- package/dist/lib/server/decorators/components/Middleware.js +2 -5
- package/dist/lib/server/decorators/components/Middleware.js.map +1 -1
- package/dist/lib/server/decorators/components/StaticServe.d.ts +17 -0
- package/dist/lib/server/decorators/components/StaticServe.js +27 -0
- package/dist/lib/server/decorators/components/StaticServe.js.map +1 -0
- package/dist/lib/server/decorators/components/WebSocket.js +4 -0
- package/dist/lib/server/decorators/components/WebSocket.js.map +1 -1
- package/dist/lib/server/decorators/components/index.d.ts +1 -0
- package/dist/lib/server/decorators/components/index.js +1 -0
- package/dist/lib/server/decorators/components/index.js.map +1 -1
- package/dist/lib/server/src/PrepareService.d.ts +8 -0
- package/dist/lib/server/src/PrepareService.js +9 -0
- package/dist/lib/server/src/PrepareService.js.map +1 -0
- package/dist/lib/server/src/services/PrepareConfigService.d.ts +8 -0
- package/dist/lib/server/src/services/PrepareConfigService.js +32 -0
- package/dist/lib/server/src/services/PrepareConfigService.js.map +1 -0
- package/dist/lib/server/src/services/PrepareMiddlewareService.d.ts +14 -0
- package/dist/lib/server/src/services/PrepareMiddlewareService.js +33 -0
- package/dist/lib/server/src/services/PrepareMiddlewareService.js.map +1 -0
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.d.ts +9 -0
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.js +50 -0
- package/dist/lib/server/src/services/PrepareStaticServeConfigService.js.map +1 -0
- package/dist/lib/server/src/services/PrepareValidatorService.d.ts +9 -0
- package/dist/lib/server/src/services/PrepareValidatorService.js +32 -0
- package/dist/lib/server/src/services/PrepareValidatorService.js.map +1 -0
- package/dist/lib/server/src/services/PrepareWebsocketService.d.ts +8 -0
- package/dist/lib/server/src/services/PrepareWebsocketService.js +31 -0
- package/dist/lib/server/src/services/PrepareWebsocketService.js.map +1 -0
- package/dist/lib/server/types/index.d.ts +1 -2
- package/dist/lib/server/types/index.js +1 -2
- package/dist/lib/server/types/index.js.map +1 -1
- package/dist/lib/server/web/decorators/http.base.js +1 -1
- package/dist/lib/server/web/decorators/http.base.js.map +1 -1
- package/dist/lib/server/web/middleware/AsenaStaticServeService.d.ts +57 -0
- package/dist/lib/server/web/middleware/AsenaStaticServeService.js +20 -0
- package/dist/lib/server/web/middleware/AsenaStaticServeService.js.map +1 -0
- package/dist/lib/server/web/middleware/index.d.ts +1 -0
- package/dist/lib/server/web/middleware/index.js +1 -0
- package/dist/lib/server/web/middleware/index.js.map +1 -1
- package/package.json +29 -33
- package/dist/lib/adapter/types/WebsocketAdapterParams.d.ts +0 -11
- package/dist/lib/adapter/types/WebsocketAdapterParams.js +0 -2
- package/dist/lib/adapter/types/WebsocketAdapterParams.js.map +0 -1
- package/dist/lib/logger/DefaultLogger.d.ts +0 -15
- package/dist/lib/logger/DefaultLogger.js +0 -31
- package/dist/lib/logger/DefaultLogger.js.map +0 -1
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { IocEngine } from '../ioc';
|
|
2
2
|
import { readConfigFile } from '../ioc/helper/fileHelper';
|
|
3
3
|
import { ComponentType } from '../ioc/types';
|
|
4
|
-
import { VALIDATOR_METHODS, } from '../adapter';
|
|
5
4
|
import * as path from 'node:path';
|
|
6
5
|
import { ComponentConstants } from '../ioc/constants';
|
|
7
6
|
import * as bun from 'bun';
|
|
8
7
|
import { green, yellow } from '../logger';
|
|
9
8
|
import { getOwnTypedMetadata, getTypedMetadata } from '../utils/typedMetadata';
|
|
9
|
+
import { PrepareMiddlewareService } from './src/services/PrepareMiddlewareService';
|
|
10
|
+
import { PrepareConfigService } from './src/services/PrepareConfigService';
|
|
11
|
+
import { PrepareWebsocketService } from './src/services/PrepareWebsocketService';
|
|
12
|
+
import { PrepareValidatorService } from './src/services/PrepareValidatorService';
|
|
13
|
+
import { PrepareStaticServeConfigService } from './src/services/PrepareStaticServeConfigService';
|
|
10
14
|
export class AsenaServer {
|
|
11
15
|
_port;
|
|
12
16
|
controllers = [];
|
|
@@ -14,14 +18,21 @@ export class AsenaServer {
|
|
|
14
18
|
_ioc;
|
|
15
19
|
_logger;
|
|
16
20
|
_adapter;
|
|
21
|
+
prepareMiddleware;
|
|
22
|
+
prepareConfigService;
|
|
23
|
+
prepareWebsocketService;
|
|
24
|
+
prepareValidatorService;
|
|
25
|
+
prepareStaticServeConfigService;
|
|
17
26
|
constructor(adapter, logger) {
|
|
27
|
+
this._adapter = adapter;
|
|
18
28
|
this._logger = logger;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
this._logger.info(`
|
|
30
|
+
___ _____ ______ _ __ ___
|
|
31
|
+
/ | / ___/ / ____// | / // |
|
|
32
|
+
/ /| | \\__ \\ / __/ / |/ // /| |
|
|
33
|
+
/ ___ | ___/ // /___ / /| // ___ |
|
|
34
|
+
/_/ |_|/____//_____//_/ |_//_/ |_|
|
|
35
|
+
`);
|
|
25
36
|
}
|
|
26
37
|
async initialize() {
|
|
27
38
|
const config = await readConfigFile();
|
|
@@ -30,16 +41,14 @@ export class AsenaServer {
|
|
|
30
41
|
}
|
|
31
42
|
this._ioc = new IocEngine(config);
|
|
32
43
|
await this._ioc.searchAndRegister(this._components);
|
|
44
|
+
this.prepareMiddleware = new PrepareMiddlewareService(this._ioc.container, this._logger);
|
|
45
|
+
this.prepareConfigService = new PrepareConfigService(this._ioc.container, this._logger);
|
|
46
|
+
this.prepareWebsocketService = new PrepareWebsocketService(this._ioc.container, this._logger);
|
|
47
|
+
this.prepareValidatorService = new PrepareValidatorService(this._ioc.container, this._logger);
|
|
48
|
+
this.prepareStaticServeConfigService = new PrepareStaticServeConfigService(this._ioc.container, this._logger);
|
|
33
49
|
return this._ioc.container;
|
|
34
50
|
}
|
|
35
51
|
async start(gc = false) {
|
|
36
|
-
this._logger.info(`
|
|
37
|
-
___ _____ ______ _ __ ___
|
|
38
|
-
/ | / ___/ / ____// | / // |
|
|
39
|
-
/ /| | \\__ \\ / __/ / |/ // /| |
|
|
40
|
-
/ ___ | ___/ // /___ / /| // ___ |
|
|
41
|
-
/_/ |_|/____//_____//_/ |_//_/ |_|
|
|
42
|
-
`);
|
|
43
52
|
await this.initialize();
|
|
44
53
|
this._logger.info(`Adapter: ${green(this._adapter.name)} implemented`);
|
|
45
54
|
this._adapter.setPort(this._port);
|
|
@@ -88,9 +97,9 @@ export class AsenaServer {
|
|
|
88
97
|
await this._adapter.registerRoute({
|
|
89
98
|
method: params.method,
|
|
90
99
|
path: lastPath,
|
|
91
|
-
|
|
100
|
+
middlewares: middlewares,
|
|
92
101
|
handler: controller[name].bind(controller),
|
|
93
|
-
staticServe: params.staticServe,
|
|
102
|
+
staticServe: await this.prepareStaticServeConfig(params.staticServe),
|
|
94
103
|
validator: validatorInstance,
|
|
95
104
|
});
|
|
96
105
|
}
|
|
@@ -107,6 +116,9 @@ export class AsenaServer {
|
|
|
107
116
|
this.controllers = controllers;
|
|
108
117
|
}
|
|
109
118
|
}
|
|
119
|
+
async prepareStaticServeConfig(staticServeClass) {
|
|
120
|
+
return await this.prepareStaticServeConfigService.prepare(staticServeClass);
|
|
121
|
+
}
|
|
110
122
|
async prepareTopMiddlewares({ controller, routePath }, websocket = false) {
|
|
111
123
|
const topMiddlewares = getTypedMetadata(ComponentConstants.MiddlewaresKey, controller.constructor) || [];
|
|
112
124
|
const middlewares = await this.prepareMiddlewares(topMiddlewares);
|
|
@@ -118,90 +130,33 @@ export class AsenaServer {
|
|
|
118
130
|
}
|
|
119
131
|
}
|
|
120
132
|
async prepareValidator(Validator) {
|
|
121
|
-
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
const name = getTypedMetadata(ComponentConstants.NameKey, Validator);
|
|
125
|
-
const validator = await this._ioc.container.resolve(name);
|
|
126
|
-
if (!validator) {
|
|
127
|
-
throw new Error('Validator not found:' + name);
|
|
128
|
-
}
|
|
129
|
-
if (Array.isArray(validator)) {
|
|
130
|
-
throw new Error('Validator cannot be array');
|
|
131
|
-
}
|
|
132
|
-
const overrides = getTypedMetadata(ComponentConstants.OverrideKey, validator.constructor);
|
|
133
|
-
const baseValidatorMiddleware = {};
|
|
134
|
-
VALIDATOR_METHODS.filter((key) => typeof validator[key] === 'function').forEach((key) => {
|
|
135
|
-
baseValidatorMiddleware[key] = {
|
|
136
|
-
handle: validator[key].bind(validator),
|
|
137
|
-
override: overrides?.includes(key) || false,
|
|
138
|
-
};
|
|
139
|
-
});
|
|
140
|
-
return baseValidatorMiddleware;
|
|
133
|
+
return await this.prepareValidatorService.prepare(Validator);
|
|
141
134
|
}
|
|
142
135
|
async prepareRouteMiddleware(middlewareParams) {
|
|
143
136
|
const routeMiddlewares = middlewareParams?.middlewares || [];
|
|
144
137
|
return this.prepareMiddlewares(routeMiddlewares);
|
|
145
138
|
}
|
|
146
139
|
async prepareMiddlewares(middlewares) {
|
|
147
|
-
|
|
148
|
-
for (const middleware of middlewares) {
|
|
149
|
-
const name = getTypedMetadata(ComponentConstants.NameKey, middleware);
|
|
150
|
-
const override = getTypedMetadata(ComponentConstants.OverrideKey, middleware);
|
|
151
|
-
const isOverride = override ? override.includes('handle') : false;
|
|
152
|
-
const instances = await this._ioc.container.resolve(name);
|
|
153
|
-
if (!instances)
|
|
154
|
-
continue;
|
|
155
|
-
const normalizedInstances = Array.isArray(instances) ? instances : [instances];
|
|
156
|
-
for (const instance of normalizedInstances) {
|
|
157
|
-
preparedMiddlewares.push({
|
|
158
|
-
handle: instance.handle.bind(instance),
|
|
159
|
-
override: isOverride,
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return preparedMiddlewares;
|
|
140
|
+
return this.prepareMiddleware.prepare(middlewares);
|
|
164
141
|
}
|
|
165
142
|
async prepareWebSocket() {
|
|
166
|
-
const
|
|
167
|
-
if (!
|
|
168
|
-
this._logger.info('No websockets found');
|
|
143
|
+
const websockets = await this.prepareWebsocketService.prepare();
|
|
144
|
+
if (!websockets) {
|
|
169
145
|
return;
|
|
170
146
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
if (registeredPaths.has(path)) {
|
|
180
|
-
throw new Error(`Duplicate WebSocket path found: ${path}`);
|
|
181
|
-
}
|
|
182
|
-
registeredPaths.add(path);
|
|
183
|
-
webSocket.namespace = path;
|
|
184
|
-
const middlewares = await this.prepareTopMiddlewares({ controller: webSocket }, true);
|
|
185
|
-
await this._adapter.websocketAdapter.registerWebSocket(webSocket, middlewares);
|
|
147
|
+
for (const websocket of websockets) {
|
|
148
|
+
const path = getTypedMetadata(ComponentConstants.PathKey, websocket.constructor);
|
|
149
|
+
const middlewares = await this.prepareTopMiddlewares({ controller: websocket }, true);
|
|
150
|
+
await this._adapter.registerWebsocketRoute({
|
|
151
|
+
path: path,
|
|
152
|
+
middlewares: middlewares,
|
|
153
|
+
websocketService: websocket,
|
|
154
|
+
});
|
|
186
155
|
}
|
|
187
156
|
}
|
|
188
157
|
async prepareConfigs() {
|
|
189
|
-
const
|
|
190
|
-
if (!config?.length) {
|
|
191
|
-
this._logger.info('No configs found');
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
if (config.length > 1) {
|
|
195
|
-
throw new Error('Only one config is allowed');
|
|
196
|
-
}
|
|
197
|
-
if (Array.isArray(config[0])) {
|
|
198
|
-
throw new Error('Config cannot be array');
|
|
199
|
-
}
|
|
200
|
-
const name = getTypedMetadata(ComponentConstants.NameKey, config[0].constructor);
|
|
201
|
-
this._logger.info(`Config found ${yellow(name)}`);
|
|
202
|
-
const configInstance = config[0];
|
|
158
|
+
const configInstance = await this.prepareConfigService.prepare();
|
|
203
159
|
if (!configInstance) {
|
|
204
|
-
this._logger.info('Config instance not found');
|
|
205
160
|
return;
|
|
206
161
|
}
|
|
207
162
|
if (typeof configInstance.serveOptions === 'function') {
|
|
@@ -217,12 +172,8 @@ export class AsenaServer {
|
|
|
217
172
|
await this._adapter.use(middleware);
|
|
218
173
|
}
|
|
219
174
|
}
|
|
175
|
+
const name = getTypedMetadata(ComponentConstants.NameKey, configInstance);
|
|
220
176
|
this._logger.info(`Config ${yellow(name)} applied`);
|
|
221
177
|
}
|
|
222
|
-
prepareLogger() {
|
|
223
|
-
if (!this._logger) {
|
|
224
|
-
this._logger = console;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
178
|
}
|
|
228
179
|
//# sourceMappingURL=AsenaServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentConstants } from '../../ioc/constants';
|
|
2
|
-
import { defineTypedMetadata,
|
|
2
|
+
import { defineTypedMetadata, getOwnTypedMetadata } from '../../utils/typedMetadata';
|
|
3
3
|
/**
|
|
4
4
|
* Decorator for marking a property as an override.
|
|
5
5
|
*
|
|
@@ -11,7 +11,7 @@ import { defineTypedMetadata, getTypedMetadata } from '../../utils/typedMetadata
|
|
|
11
11
|
*/
|
|
12
12
|
export const Override = () => {
|
|
13
13
|
return (target, propertyKey) => {
|
|
14
|
-
const overrides =
|
|
14
|
+
const overrides = getOwnTypedMetadata(ComponentConstants.OverrideKey, target) || [];
|
|
15
15
|
if (!overrides.includes(propertyKey)) {
|
|
16
16
|
overrides.push(propertyKey);
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Override.js","sourceRoot":"","sources":["../../../../lib/server/decorators/Override.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"Override.js","sourceRoot":"","sources":["../../../../lib/server/decorators/Override.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAa,mBAAmB,CAAW,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAExG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,mBAAmB,CAAW,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineComponent } from '../../../ioc/component';
|
|
2
2
|
import { ComponentType } from '../../../ioc/types';
|
|
3
3
|
import { ComponentConstants } from '../../../ioc/constants';
|
|
4
|
-
import { defineTypedMetadata
|
|
5
|
-
import { VALIDATOR_METHODS } from
|
|
4
|
+
import { defineTypedMetadata } from '../../../utils/typedMetadata';
|
|
5
|
+
import { VALIDATOR_METHODS } from '../../../adapter';
|
|
6
6
|
/**
|
|
7
7
|
* Decorator for defining a Middleware component.
|
|
8
8
|
*
|
|
@@ -11,9 +11,6 @@ import { VALIDATOR_METHODS } from "../../../adapter";
|
|
|
11
11
|
*/
|
|
12
12
|
export const Middleware = (params) => {
|
|
13
13
|
return defineComponent(ComponentType.MIDDLEWARE, params, (target) => {
|
|
14
|
-
const overrides = getTypedMetadata(ComponentConstants.OverrideKey, target);
|
|
15
|
-
defineTypedMetadata(ComponentConstants.OverrideKey, overrides, target);
|
|
16
|
-
// defineMetadata(ComponentConstants.OverrideKey, overdrive || params?.override || false, target);
|
|
17
14
|
defineTypedMetadata(ComponentConstants.ValidatorKey, params?.validator || false, target);
|
|
18
15
|
if (params?.validator) {
|
|
19
16
|
const hasValidatorMethod = VALIDATOR_METHODS.some((method) => typeof target.prototype[method] === 'function');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Middleware.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"Middleware.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAyB,EAAkB,EAAE;IACtE,OAAO,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QAClE,mBAAmB,CAAU,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC;QAElG,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;YACtB,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC;YAE9G,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CACX,SAAS,MAAM,CAAC,IAAI,0DAA0D,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9G,CAAC;gBACF,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,IAAI,mDAAmD,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { StaticServeParams } from '../../web/middleware';
|
|
2
|
+
/**
|
|
3
|
+
* Decorator for registering static file serving middleware in Asena controllers.
|
|
4
|
+
* Sets the root directory path for serving static files.
|
|
5
|
+
*
|
|
6
|
+
* @param {string | StaticServeParams} name - The root directory path or configuration parameters
|
|
7
|
+
* @returns {ClassDecorator} A class decorator function
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* @StaticServe("TestStaticMiddleware")
|
|
12
|
+
* export class StaticMiddleware extends StaticServeService {
|
|
13
|
+
* // ...implementation
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const StaticServe: (name?: string | StaticServeParams) => ClassDecorator;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineTypedMetadata } from '../../../utils/typedMetadata';
|
|
2
|
+
import { ComponentConstants } from '../../../ioc/constants';
|
|
3
|
+
import { defineComponent } from '../../../ioc/component';
|
|
4
|
+
import { ComponentType } from '../../../ioc/types';
|
|
5
|
+
/**
|
|
6
|
+
* Decorator for registering static file serving middleware in Asena controllers.
|
|
7
|
+
* Sets the root directory path for serving static files.
|
|
8
|
+
*
|
|
9
|
+
* @param {string | StaticServeParams} name - The root directory path or configuration parameters
|
|
10
|
+
* @returns {ClassDecorator} A class decorator function
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* @StaticServe("TestStaticMiddleware")
|
|
15
|
+
* export class StaticMiddleware extends StaticServeService {
|
|
16
|
+
* // ...implementation
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const StaticServe = (name) => {
|
|
21
|
+
return defineComponent(ComponentType.MIDDLEWARE, name, (target) => {
|
|
22
|
+
if (typeof name !== 'string' && name !== null && name.root) {
|
|
23
|
+
defineTypedMetadata(ComponentConstants.StaticServeRootKey, name.root, target);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=StaticServe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaticServe.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/StaticServe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiC,EAAkB,EAAE;IAC/E,OAAO,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;QAChE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3D,mBAAmB,CAAS,kBAAkB,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -12,6 +12,10 @@ import { defineTypedMetadata } from '../../../utils/typedMetadata';
|
|
|
12
12
|
export const WebSocket = (params) => {
|
|
13
13
|
return defineComponent(ComponentType.WEBSOCKET, params, (target) => {
|
|
14
14
|
let path = typeof params === 'string' ? params : params.path;
|
|
15
|
+
if (!path) {
|
|
16
|
+
console.error('path parameter is required');
|
|
17
|
+
process.exit();
|
|
18
|
+
}
|
|
15
19
|
path = path.replace(/^\/+/, '');
|
|
16
20
|
defineTypedMetadata(ComponentConstants.PathKey, path, target);
|
|
17
21
|
defineMiddleware(target, params.middlewares || []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocket.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/WebSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAInE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAiC,EAAkB,EAAE;IAC7E,OAAO,eAAe,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjE,IAAI,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAE7D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEhC,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtE,gBAAgB,CAAC,MAAM,EAAG,MAA2B,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAEzE,mBAAmB,CACjB,kBAAkB,CAAC,cAAc,EAChC,MAA2B,CAAC,WAAW,IAAI,EAAE,EAC9C,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"WebSocket.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/WebSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAInE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAiC,EAAkB,EAAE;IAC7E,OAAO,eAAe,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjE,IAAI,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAE7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEhC,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtE,gBAAgB,CAAC,MAAM,EAAG,MAA2B,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAEzE,mBAAmB,CACjB,kBAAkB,CAAC,cAAc,EAChC,MAA2B,CAAC,WAAW,IAAI,EAAE,EAC9C,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Container } from '../../ioc';
|
|
2
|
+
import type { ServerLogger } from '../../logger';
|
|
3
|
+
export declare abstract class PrepareService {
|
|
4
|
+
protected container: Container;
|
|
5
|
+
protected logger: ServerLogger;
|
|
6
|
+
constructor(container: Container, logger: ServerLogger);
|
|
7
|
+
abstract prepare(...args: any[]): Promise<any> | any;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrepareService.js","sourceRoot":"","sources":["../../../../lib/server/src/PrepareService.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,cAAc;IAExB,SAAS,CAAY;IAErB,MAAM,CAAe;IAE/B,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CAIF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import type { AsenaConfig } from '../../config';
|
|
3
|
+
import { type ServerLogger } from '../../../logger';
|
|
4
|
+
import type { Container } from '../../../ioc';
|
|
5
|
+
export declare class PrepareConfigService extends PrepareService {
|
|
6
|
+
constructor(container: Container, logger: ServerLogger);
|
|
7
|
+
prepare(): Promise<AsenaConfig>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import { ComponentType } from '../../../ioc/types';
|
|
3
|
+
import { getTypedMetadata } from '../../../utils/typedMetadata';
|
|
4
|
+
import { ComponentConstants } from '../../../ioc/constants';
|
|
5
|
+
import { yellow } from '../../../logger';
|
|
6
|
+
export class PrepareConfigService extends PrepareService {
|
|
7
|
+
constructor(container, logger) {
|
|
8
|
+
super(container, logger);
|
|
9
|
+
}
|
|
10
|
+
async prepare() {
|
|
11
|
+
const config = await this.container.resolveAll(ComponentType.CONFIG);
|
|
12
|
+
if (!config?.length) {
|
|
13
|
+
this.logger.info('No configs found');
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (config.length > 1) {
|
|
17
|
+
throw new Error('Only one config is allowed');
|
|
18
|
+
}
|
|
19
|
+
if (Array.isArray(config[0])) {
|
|
20
|
+
throw new Error('Config cannot be array');
|
|
21
|
+
}
|
|
22
|
+
const configInstance = config[0];
|
|
23
|
+
if (!configInstance) {
|
|
24
|
+
this.logger.info('Config instance not found');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const name = getTypedMetadata(ComponentConstants.NameKey, config[0].constructor);
|
|
28
|
+
this.logger.info(`Config found ${yellow(name)}`);
|
|
29
|
+
return configInstance;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=PrepareConfigService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrepareConfigService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAqB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IAEtD,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAc,aAAa,CAAC,MAAM,CAAC,CAAC;QAElF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAEzF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,OAAO,cAAc,CAAC;IACxB,CAAC;CAEF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import type { MiddlewareClass } from '../../web/middleware';
|
|
3
|
+
import type { BaseMiddleware } from '../../../adapter';
|
|
4
|
+
import type { ServerLogger } from '../../../logger';
|
|
5
|
+
import type { Container } from '../../../ioc';
|
|
6
|
+
export declare class PrepareMiddlewareService extends PrepareService {
|
|
7
|
+
constructor(container: Container, logger: ServerLogger);
|
|
8
|
+
/**
|
|
9
|
+
* @description Prepares middleware instances from middleware classes
|
|
10
|
+
* @param {MiddlewareClass[]} middlewares - Middleware classes to prepare
|
|
11
|
+
* @returns {Promise<BaseMiddleware[]>} Prepared middleware instances
|
|
12
|
+
*/
|
|
13
|
+
prepare(middlewares: MiddlewareClass[]): Promise<BaseMiddleware[]>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import { getTypedMetadata } from '../../../utils/typedMetadata';
|
|
3
|
+
import { ComponentConstants } from '../../../ioc/constants';
|
|
4
|
+
export class PrepareMiddlewareService extends PrepareService {
|
|
5
|
+
constructor(container, logger) {
|
|
6
|
+
super(container, logger);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @description Prepares middleware instances from middleware classes
|
|
10
|
+
* @param {MiddlewareClass[]} middlewares - Middleware classes to prepare
|
|
11
|
+
* @returns {Promise<BaseMiddleware[]>} Prepared middleware instances
|
|
12
|
+
*/
|
|
13
|
+
async prepare(middlewares) {
|
|
14
|
+
const preparedMiddlewares = [];
|
|
15
|
+
for (const middleware of middlewares) {
|
|
16
|
+
const name = getTypedMetadata(ComponentConstants.NameKey, middleware);
|
|
17
|
+
const override = getTypedMetadata(ComponentConstants.OverrideKey, middleware);
|
|
18
|
+
const isOverride = override ? override.includes('handle') : false;
|
|
19
|
+
const instances = await this.container.resolve(name);
|
|
20
|
+
if (!instances)
|
|
21
|
+
continue;
|
|
22
|
+
const normalizedInstances = Array.isArray(instances) ? instances : [instances];
|
|
23
|
+
for (const instance of normalizedInstances) {
|
|
24
|
+
preparedMiddlewares.push({
|
|
25
|
+
handle: instance.handle.bind(instance),
|
|
26
|
+
override: isOverride,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return preparedMiddlewares;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=PrepareMiddlewareService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrepareMiddlewareService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareMiddlewareService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAE1D,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,WAA8B;QACjD,MAAM,mBAAmB,GAAqB,EAAE,CAAC;QAEjD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,gBAAgB,CAAW,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACxF,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAElE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAyB,IAAI,CAAC,CAAC;YAE7E,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE/E,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,mBAAmB,CAAC,IAAI,CAAC;oBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtC,QAAQ,EAAE,UAAU;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CAEF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import type { StaticServeClass } from '../../web/middleware';
|
|
3
|
+
import type { BaseStaticServeParams } from '../../../adapter';
|
|
4
|
+
import type { Container } from '../../../ioc';
|
|
5
|
+
import type { ServerLogger } from '../../../logger';
|
|
6
|
+
export declare class PrepareStaticServeConfigService extends PrepareService {
|
|
7
|
+
constructor(container: Container, logger: ServerLogger);
|
|
8
|
+
prepare(staticServeClass: StaticServeClass): Promise<BaseStaticServeParams>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import { getTypedMetadata } from '../../../utils/typedMetadata';
|
|
3
|
+
import { ComponentConstants } from '../../../ioc/constants';
|
|
4
|
+
export class PrepareStaticServeConfigService extends PrepareService {
|
|
5
|
+
constructor(container, logger) {
|
|
6
|
+
super(container, logger);
|
|
7
|
+
}
|
|
8
|
+
async prepare(staticServeClass) {
|
|
9
|
+
if (!staticServeClass) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const name = getTypedMetadata(ComponentConstants.NameKey, staticServeClass);
|
|
13
|
+
const root = getTypedMetadata(ComponentConstants.StaticServeRootKey, staticServeClass);
|
|
14
|
+
const staticServeService = await this.container.resolve(name);
|
|
15
|
+
if (!staticServeService) {
|
|
16
|
+
throw new Error(`Static Serve service ${name} not found.`);
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(staticServeService)) {
|
|
19
|
+
throw new Error('Static serve service cannot be array');
|
|
20
|
+
}
|
|
21
|
+
const overrides = getTypedMetadata(ComponentConstants.OverrideKey, staticServeService);
|
|
22
|
+
const baseStaticServeParams = {
|
|
23
|
+
extra: undefined,
|
|
24
|
+
root,
|
|
25
|
+
rewriteRequestPath: undefined,
|
|
26
|
+
onFound: undefined,
|
|
27
|
+
onNotFound: undefined,
|
|
28
|
+
};
|
|
29
|
+
if (staticServeService.extra) {
|
|
30
|
+
baseStaticServeParams.extra = staticServeService.extra;
|
|
31
|
+
}
|
|
32
|
+
if (staticServeService.rewriteRequestPath) {
|
|
33
|
+
baseStaticServeParams.rewriteRequestPath = staticServeService.rewriteRequestPath;
|
|
34
|
+
}
|
|
35
|
+
if (staticServeService.onFound) {
|
|
36
|
+
baseStaticServeParams.onFound = {
|
|
37
|
+
handler: staticServeService.onFound.bind(staticServeService),
|
|
38
|
+
override: overrides?.includes('onFound'),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (staticServeService.onNotFound) {
|
|
42
|
+
baseStaticServeParams.onNotFound = {
|
|
43
|
+
handler: staticServeService.onNotFound.bind(staticServeService),
|
|
44
|
+
override: overrides?.includes('onNotFound'),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return baseStaticServeParams;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=PrepareStaticServeConfigService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrepareStaticServeConfigService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareStaticServeConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,MAAM,OAAO,+BAAgC,SAAQ,cAAc;IAEjE,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,gBAAkC;QACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAE/F,MAAM,kBAAkB,GACtB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAA+B,IAAI,CAAC,CAAC;QAEnE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,aAAa,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,SAAS,GAAa,gBAAgB,CAAW,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAE3G,MAAM,qBAAqB,GAA0B;YACnD,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,kBAAkB,EAAE,SAAS;YAC7B,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;SACtB,CAAC;QAEF,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC7B,qBAAqB,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;QACzD,CAAC;QAED,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;YAC1C,qBAAqB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC;QACnF,CAAC;QAED,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,qBAAqB,CAAC,OAAO,GAAG;gBAC9B,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBAC5D,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;YAClC,qBAAqB,CAAC,UAAU,GAAG;gBACjC,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBAC/D,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC;aAC5C,CAAC;QACJ,CAAC;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC;CAEF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import type { ValidatorClass } from '../../web/middleware';
|
|
3
|
+
import { type BaseValidator } from '../../../adapter';
|
|
4
|
+
import type { Container } from '../../../ioc';
|
|
5
|
+
import type { ServerLogger } from '../../../logger';
|
|
6
|
+
export declare class PrepareValidatorService extends PrepareService {
|
|
7
|
+
constructor(container: Container, logger: ServerLogger);
|
|
8
|
+
prepare(Validator: ValidatorClass<any>): Promise<BaseValidator>;
|
|
9
|
+
}
|