@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
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import { getTypedMetadata } from '../../../utils/typedMetadata';
|
|
3
|
+
import { ComponentConstants } from '../../../ioc/constants';
|
|
4
|
+
import { VALIDATOR_METHODS } from '../../../adapter';
|
|
5
|
+
export class PrepareValidatorService extends PrepareService {
|
|
6
|
+
constructor(container, logger) {
|
|
7
|
+
super(container, logger);
|
|
8
|
+
}
|
|
9
|
+
async prepare(Validator) {
|
|
10
|
+
if (!Validator) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const name = getTypedMetadata(ComponentConstants.NameKey, Validator);
|
|
14
|
+
const validator = await this.container.resolve(name);
|
|
15
|
+
if (!validator) {
|
|
16
|
+
throw new Error('Validator not found:' + name);
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(validator)) {
|
|
19
|
+
throw new Error('Validator cannot be array');
|
|
20
|
+
}
|
|
21
|
+
const overrides = getTypedMetadata(ComponentConstants.OverrideKey, validator);
|
|
22
|
+
const baseValidatorMiddleware = {};
|
|
23
|
+
VALIDATOR_METHODS.filter((key) => typeof validator[key] === 'function').forEach((key) => {
|
|
24
|
+
baseValidatorMiddleware[key] = {
|
|
25
|
+
handle: validator[key].bind(validator),
|
|
26
|
+
override: overrides?.includes(key) || false,
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
return baseValidatorMiddleware;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=PrepareValidatorService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrepareValidatorService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareValidatorService.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;AAE5D,OAAO,EAAsB,iBAAiB,EAAyB,MAAM,kBAAkB,CAAC;AAIhG,MAAM,OAAO,uBAAwB,SAAQ,cAAc;IAEzD,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAA8B;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE7E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAA8B,IAAI,CAAC,CAAC;QAElF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAa,gBAAgB,CAAW,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAElG,MAAM,uBAAuB,GAAkB,EAAE,CAAC;QAElD,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtF,uBAAuB,CAAC,GAAG,CAAC,GAAG;gBAC7B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBACtC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK;aACjB,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,uBAAuB,CAAC;IACjC,CAAC;CAEF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import type { AsenaWebSocketService, WebSocketData } from '../../web/websocket';
|
|
3
|
+
import type { Container } from '../../../ioc';
|
|
4
|
+
import type { ServerLogger } from '../../../logger';
|
|
5
|
+
export declare class PrepareWebsocketService extends PrepareService {
|
|
6
|
+
constructor(container: Container, logger: ServerLogger);
|
|
7
|
+
prepare(): Promise<AsenaWebSocketService<WebSocketData<any>>[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { PrepareService } from '../PrepareService';
|
|
2
|
+
import { getOwnTypedMetadata } from '../../../utils/typedMetadata';
|
|
3
|
+
import { ComponentConstants } from '../../../ioc/constants';
|
|
4
|
+
import { ComponentType } from '../../../ioc/types';
|
|
5
|
+
export class PrepareWebsocketService extends PrepareService {
|
|
6
|
+
constructor(container, logger) {
|
|
7
|
+
super(container, logger);
|
|
8
|
+
}
|
|
9
|
+
async prepare() {
|
|
10
|
+
const webSockets = await this.container.resolveAll(ComponentType.WEBSOCKET);
|
|
11
|
+
if (!webSockets?.length) {
|
|
12
|
+
this.logger.info('No websockets found');
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
// flat the array
|
|
16
|
+
const flatWebSockets = webSockets.flat();
|
|
17
|
+
const registeredPaths = new Set();
|
|
18
|
+
const preparedWebsockets = [];
|
|
19
|
+
for (const webSocket of flatWebSockets) {
|
|
20
|
+
const path = getOwnTypedMetadata(ComponentConstants.PathKey, webSocket.constructor);
|
|
21
|
+
if (registeredPaths.has(path)) {
|
|
22
|
+
throw new Error(`Duplicate WebSocket path found: ${path}`);
|
|
23
|
+
}
|
|
24
|
+
registeredPaths.add(path);
|
|
25
|
+
webSocket.namespace = path;
|
|
26
|
+
preparedWebsockets.push(webSocket);
|
|
27
|
+
}
|
|
28
|
+
return preparedWebsockets;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=PrepareWebsocketService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrepareWebsocketService.js","sourceRoot":"","sources":["../../../../../lib/server/src/services/PrepareWebsocketService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,OAAO,uBAAwB,SAAQ,cAAc;IAEzD,YAAmB,SAAoB,EAAE,MAAoB;QAC3D,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAuC,aAAa,CAAC,SAAS,CAAC,CAAC;QAElH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,MAAM,kBAAkB,GAAgD,EAAE,CAAC;QAE3E,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YAE5F,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;YAE3B,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CAEF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/server/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/server/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,2CAA2C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.base.js","sourceRoot":"","sources":["../../../../../lib/server/web/decorators/http.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQxF,MAAM,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAa;IAC1G,OAAO,UAAU,KAAa,EAAE,WAAmB,EAAE,WAAuD;QAC1G,MAAM,MAAM,GAAG,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEhG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QAC3F,CAAC;QAED,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAEnF,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"http.base.js","sourceRoot":"","sources":["../../../../../lib/server/web/decorators/http.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQxF,MAAM,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAa;IAC1G,OAAO,UAAU,KAAa,EAAE,WAAmB,EAAE,WAAuD;QAC1G,MAAM,MAAM,GAAG,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEhG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QAC3F,CAAC;QAED,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAEnF,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAA0C,EAA6B,EAAE;IAC7G,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACL,GAAG,cAAc;YACjB,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC;SAClC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,MAAM;QACT,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;KACvC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { AsenaContext } from '../../../adapter';
|
|
2
|
+
import type { ComponentParams } from '../../../ioc/types';
|
|
3
|
+
import type { Class } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Abstract configuration class for serving static files in Asena applications.
|
|
6
|
+
* Provides customization options for handling static file requests.
|
|
7
|
+
*
|
|
8
|
+
* @template C - Type extending AsenaContext for request/response handling
|
|
9
|
+
* @template E - Type for additional configuration options
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class AsenaStaticServeService<C extends AsenaContext<any, any>, E = any> {
|
|
12
|
+
/**
|
|
13
|
+
* Additional configuration options specific to the implementation
|
|
14
|
+
* @protected
|
|
15
|
+
*/
|
|
16
|
+
extra?: E;
|
|
17
|
+
/**
|
|
18
|
+
* Root directory path from which to serve static files
|
|
19
|
+
* @protected
|
|
20
|
+
*/
|
|
21
|
+
protected root?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Function to rewrite incoming request paths before serving files
|
|
24
|
+
* @param {string} path - The original request path
|
|
25
|
+
* @returns {string} The rewritten path to use for file lookup
|
|
26
|
+
* @protected
|
|
27
|
+
*/
|
|
28
|
+
abstract rewriteRequestPath?(path: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Callback triggered when a requested static file is successfully found
|
|
31
|
+
* @param {string} path - The path of the found file
|
|
32
|
+
* @param {C} c - The request context
|
|
33
|
+
* @returns {void | Promise<void>} Optional Promise for asynchronous operations
|
|
34
|
+
* @abstract
|
|
35
|
+
*/
|
|
36
|
+
abstract onFound?(path: string, c: C): void | Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Callback triggered when a requested static file cannot be found
|
|
39
|
+
* @param {string} path - The path of the file that was not found
|
|
40
|
+
* @param {C} c - The request context
|
|
41
|
+
* @returns {void | Promise<void>} Optional Promise for asynchronous operations
|
|
42
|
+
* @abstract
|
|
43
|
+
*/
|
|
44
|
+
abstract onNotFound?(path: string, c: C): void | Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Interface defining parameters for static file serving configuration.
|
|
48
|
+
* Used to configure path resolution and request processing for static assets.
|
|
49
|
+
*/
|
|
50
|
+
export interface StaticServeParams extends ComponentParams {
|
|
51
|
+
/**
|
|
52
|
+
* Root directory path from which to serve static files.
|
|
53
|
+
* This path serves as the base directory for all static assets.
|
|
54
|
+
*/
|
|
55
|
+
root?: string;
|
|
56
|
+
}
|
|
57
|
+
export type StaticServeClass = Class<AsenaStaticServeService<AsenaContext<any, any>>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract configuration class for serving static files in Asena applications.
|
|
3
|
+
* Provides customization options for handling static file requests.
|
|
4
|
+
*
|
|
5
|
+
* @template C - Type extending AsenaContext for request/response handling
|
|
6
|
+
* @template E - Type for additional configuration options
|
|
7
|
+
*/
|
|
8
|
+
export class AsenaStaticServeService {
|
|
9
|
+
/**
|
|
10
|
+
* Additional configuration options specific to the implementation
|
|
11
|
+
* @protected
|
|
12
|
+
*/
|
|
13
|
+
extra;
|
|
14
|
+
/**
|
|
15
|
+
* Root directory path from which to serve static files
|
|
16
|
+
* @protected
|
|
17
|
+
*/
|
|
18
|
+
root;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=AsenaStaticServeService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsenaStaticServeService.js","sourceRoot":"","sources":["../../../../../lib/server/web/middleware/AsenaStaticServeService.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,OAAgB,uBAAuB;IAE3C;;;OAGG;IACI,KAAK,CAAK;IAEjB;;;OAGG;IACO,IAAI,CAAU;CA4BzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/server/web/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/server/web/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asenajs/asena",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist"
|
|
9
|
-
],
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"author": "LibirSoft",
|
|
10
5
|
"repository": {
|
|
11
6
|
"type": "git",
|
|
12
7
|
"url": "https://github.com/AsenaJs/Asena.git"
|
|
13
8
|
},
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"reflect-metadata": "^0.2.2"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@changesets/cli": "^2.29.3",
|
|
15
|
+
"@types/bun": "latest",
|
|
16
|
+
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
17
|
+
"eslint": "^8.57.1",
|
|
18
|
+
"eslint-config-alloy": "^5.1.2",
|
|
19
|
+
"eslint-config-prettier": "^9.1.0",
|
|
20
|
+
"eslint-plugin-alloy": "^1.2.1",
|
|
21
|
+
"eslint-plugin-import": "^2.31.0",
|
|
22
|
+
"eslint-plugin-n": "^16.6.2",
|
|
23
|
+
"eslint-plugin-prettier": "^5.4.0",
|
|
24
|
+
"eslint-plugin-promise": "^6.6.0",
|
|
25
|
+
"prettier": "^3.5.3",
|
|
26
|
+
"typescript": "^5.8.3"
|
|
18
27
|
},
|
|
19
28
|
"exports": {
|
|
20
29
|
".": {
|
|
@@ -66,6 +75,10 @@
|
|
|
66
75
|
"types": "./dist/lib/ioc/Container.d.ts"
|
|
67
76
|
}
|
|
68
77
|
},
|
|
78
|
+
"description": "Asena is a spring like framework for building web applications built with bun",
|
|
79
|
+
"files": [
|
|
80
|
+
"dist"
|
|
81
|
+
],
|
|
69
82
|
"keywords": [
|
|
70
83
|
"asena",
|
|
71
84
|
"framework",
|
|
@@ -80,28 +93,11 @@
|
|
|
80
93
|
"app",
|
|
81
94
|
"api"
|
|
82
95
|
],
|
|
83
|
-
"author": "LibirSoft",
|
|
84
96
|
"license": "MIT",
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"@changesets/cli": "^2.28.1",
|
|
90
|
-
"@types/bun": "latest",
|
|
91
|
-
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
92
|
-
"eslint": "^8.57.1",
|
|
93
|
-
"eslint-config-alloy": "^5.1.2",
|
|
94
|
-
"eslint-config-prettier": "^9.1.0",
|
|
95
|
-
"eslint-plugin-alloy": "^1.2.1",
|
|
96
|
-
"eslint-plugin-import": "^2.31.0",
|
|
97
|
-
"eslint-plugin-n": "^16.6.2",
|
|
98
|
-
"eslint-plugin-prettier": "^5.2.5",
|
|
99
|
-
"eslint-plugin-promise": "^6.6.0",
|
|
100
|
-
"prettier": "^3.5.3",
|
|
101
|
-
"typescript": "^5.8.2",
|
|
102
|
-
"winston": "^3.17.0"
|
|
97
|
+
"scripts": {
|
|
98
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
99
|
+
"build": "bun run clean && tsc",
|
|
100
|
+
"clean": "rm -rf dist"
|
|
103
101
|
},
|
|
104
|
-
"
|
|
105
|
-
"winston": "^3.13.0"
|
|
106
|
-
}
|
|
102
|
+
"types": "dist/index.d.ts"
|
|
107
103
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketAdapterParams.js","sourceRoot":"","sources":["../../../../lib/adapter/types/WebsocketAdapterParams.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Logger } from 'winston';
|
|
2
|
-
import winston from 'winston';
|
|
3
|
-
import type { ServerLogger } from './Logger';
|
|
4
|
-
export declare const defaultFormat: winston.Logform.Format;
|
|
5
|
-
export declare const green: (message: string) => string;
|
|
6
|
-
export declare const red: (message: string) => string;
|
|
7
|
-
export declare const yellow: (message: string) => string;
|
|
8
|
-
export declare class DefaultLogger implements ServerLogger {
|
|
9
|
-
logger: Logger;
|
|
10
|
-
constructor();
|
|
11
|
-
info(message: string, meta?: any): void;
|
|
12
|
-
warn(message: string, meta?: any): void;
|
|
13
|
-
error(message: string, meta?: any): void;
|
|
14
|
-
profile(message: string): void;
|
|
15
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import winston from 'winston';
|
|
2
|
-
export const defaultFormat = winston.format.combine(winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.splat(), winston.format.colorize(), winston.format.align(), winston.format.printf((info) => {
|
|
3
|
-
const { timestamp, level, message, ...extra } = info;
|
|
4
|
-
return `${timestamp} [${level}]: ${message} ${Object.keys(extra).length ? JSON.stringify(extra, null, 2) : ''}`;
|
|
5
|
-
}));
|
|
6
|
-
export const green = (message) => `\x1b[32m${message}\x1b[0m`;
|
|
7
|
-
export const red = (message) => `\x1b[31m${message}\x1b[0m`;
|
|
8
|
-
export const yellow = (message) => `\x1b[33m${message}\x1b[0m`;
|
|
9
|
-
export class DefaultLogger {
|
|
10
|
-
logger;
|
|
11
|
-
constructor() {
|
|
12
|
-
this.logger = winston.createLogger({
|
|
13
|
-
level: 'info',
|
|
14
|
-
format: winston.format.json(),
|
|
15
|
-
transports: [new winston.transports.Console({ format: defaultFormat })],
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
info(message, meta) {
|
|
19
|
-
this.logger.info(message, meta);
|
|
20
|
-
}
|
|
21
|
-
warn(message, meta) {
|
|
22
|
-
this.logger.warn(message, meta);
|
|
23
|
-
}
|
|
24
|
-
error(message, meta) {
|
|
25
|
-
this.logger.error(message, meta);
|
|
26
|
-
}
|
|
27
|
-
profile(message) {
|
|
28
|
-
this.logger.profile(message);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=DefaultLogger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultLogger.js","sourceRoot":"","sources":["../../../lib/logger/DefaultLogger.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CACjD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IAC7B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAErD,OAAO,GAAG,SAAS,KAAK,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAClH,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,WAAW,OAAO,SAAS,CAAC;AAEtE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,WAAW,OAAO,SAAS,CAAC;AAEpE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,WAAW,OAAO,SAAS,CAAC;AAEvE,MAAM,OAAO,aAAa;IAEjB,MAAM,CAAS;IAEtB;QACE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YACjC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YAC7B,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAS,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,OAAe,EAAE,IAAU;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,IAAI,CAAC,OAAe,EAAE,IAAU;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,IAAU;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CAEF"}
|