@morojs/moro 1.7.21 → 1.7.22
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.
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Container } from '../utilities/index.js';
|
|
2
|
-
import { ModuleConfig } from '../../types/module.js';
|
|
3
|
-
import { ModuleDefinition } from '../../types/module.js';
|
|
2
|
+
import { ModuleConfig, ModuleDefinition } from '../../types/module.js';
|
|
4
3
|
export declare function defineModule(definition: ModuleDefinition): ModuleConfig;
|
|
5
4
|
export declare class ModuleLoader {
|
|
6
5
|
private container;
|
|
@@ -3,6 +3,24 @@ import { promises as fs } from 'fs';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { createFrameworkLogger } from '../logger/index.js';
|
|
5
5
|
import { filePathToImportURL } from '../utilities/package-utils.js';
|
|
6
|
+
function isCompiledRoute(route) {
|
|
7
|
+
return 'schema' in route && 'execute' in route;
|
|
8
|
+
}
|
|
9
|
+
function normalizeRoute(route) {
|
|
10
|
+
if (!isCompiledRoute(route))
|
|
11
|
+
return route;
|
|
12
|
+
return {
|
|
13
|
+
method: route.schema.method,
|
|
14
|
+
path: route.schema.path,
|
|
15
|
+
handler: route.schema.handler,
|
|
16
|
+
validation: route.schema.validation,
|
|
17
|
+
auth: route.schema.auth,
|
|
18
|
+
cache: route.schema.cache,
|
|
19
|
+
rateLimit: route.schema.rateLimit
|
|
20
|
+
? { requests: route.schema.rateLimit.requests, window: route.schema.rateLimit.window }
|
|
21
|
+
: undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
6
24
|
// Module Definition Function
|
|
7
25
|
export function defineModule(definition) {
|
|
8
26
|
const moduleConfig = {
|
|
@@ -16,7 +34,8 @@ export function defineModule(definition) {
|
|
|
16
34
|
}
|
|
17
35
|
// Store route definitions and handlers
|
|
18
36
|
if (definition.routes) {
|
|
19
|
-
|
|
37
|
+
const normalizedRoutes = definition.routes.map(normalizeRoute);
|
|
38
|
+
moduleConfig.routes = normalizedRoutes.map((route, index) => ({
|
|
20
39
|
method: route.method,
|
|
21
40
|
path: route.path,
|
|
22
41
|
handler: `route_handler_${index}`, // Standardized naming
|
|
@@ -36,7 +55,7 @@ export function defineModule(definition) {
|
|
|
36
55
|
].includes(key))),
|
|
37
56
|
}));
|
|
38
57
|
// Store the actual route handler functions
|
|
39
|
-
moduleConfig.routeHandlers =
|
|
58
|
+
moduleConfig.routeHandlers = normalizedRoutes.reduce((acc, route, index) => {
|
|
40
59
|
acc[`route_handler_${index}`] = route.handler;
|
|
41
60
|
return acc;
|
|
42
61
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../src/core/modules/modules.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,6BAA6B;AAC7B,MAAM,UAAU,YAAY,CAAC,UAA4B;IACvD,MAAM,YAAY,GAAiB;QACjC,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC;IAEF,gCAAgC;IAChC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC1B,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAClD,CAAC;IAED,uCAAuC;IACvC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../src/core/modules/modules.ts"],"names":[],"mappings":"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"}
|
package/dist/types/module.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ValidationErrorHandler } from './config.js';
|
|
2
|
+
import type { CompiledRoute } from '../core/routing/index.js';
|
|
2
3
|
export type ModuleMiddleware = string | ((req: any, res: any, next: () => void) => void | Promise<void>);
|
|
3
4
|
export interface ModuleRoute {
|
|
4
5
|
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
@@ -48,7 +49,7 @@ export interface ModuleDefinition {
|
|
|
48
49
|
};
|
|
49
50
|
[key: string]: any;
|
|
50
51
|
};
|
|
51
|
-
routes?: ModuleRoute[];
|
|
52
|
+
routes?: (ModuleRoute | CompiledRoute)[];
|
|
52
53
|
sockets?: ModuleSocket[];
|
|
53
54
|
dependencies?: string[];
|
|
54
55
|
middleware?: ModuleMiddleware[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morojs/moro",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.22",
|
|
4
4
|
"description": "High-performance Node.js framework with intelligent routing, automatic middleware ordering, enterprise authentication (Auth.js), type-safe validation, and functional architecture",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|