@riktajs/core 0.2.4 ā 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/README.md +34 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/application.js +30 -14
- package/dist/core/application.js.map +1 -1
- package/dist/core/decorators/controller.decorator.d.ts.map +1 -1
- package/dist/core/decorators/controller.decorator.js +0 -1
- package/dist/core/decorators/controller.decorator.js.map +1 -1
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +1 -0
- package/dist/core/discovery.js.map +1 -1
- package/dist/core/router/router.d.ts +26 -13
- package/dist/core/router/router.d.ts.map +1 -1
- package/dist/core/router/router.js +160 -108
- package/dist/core/router/router.js.map +1 -1
- package/dist/core/types.d.ts +3 -1
- package/dist/core/types.d.ts.map +1 -1
- package/package.json +10 -6
package/README.md
CHANGED
|
@@ -101,6 +101,40 @@ Everything you need to build production-ready APIs.
|
|
|
101
101
|
| [**Validation**](./docs/guide/validation.md) | **New!** Type-safe validation with Zod. |
|
|
102
102
|
| [**Lifecycle**](./docs/guide/lifecycle.md) | Hooks (`OnProviderInit`) and the Event Bus. |
|
|
103
103
|
| [**Error Handling**](./docs/guide/error-handling.md) | Exception filters and standard JSON responses. |
|
|
104
|
+
| [**Benchmarks**](./benchmarks/README.md) | Performance comparison with Fastify & NestJS. |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## ā” Performance
|
|
109
|
+
|
|
110
|
+
Rikta is built on Fastify and delivers **excellent performance**. From our [benchmarks](./benchmarks/README.md):
|
|
111
|
+
|
|
112
|
+
| Metric | Rikta vs NestJS | Result |
|
|
113
|
+
|--------|-----------------|--------|
|
|
114
|
+
| **Startup** | š¢ **-37.7%** | Rikta is faster |
|
|
115
|
+
| **GET requests** | š¢ **-44.3%** | Rikta is faster |
|
|
116
|
+
| **POST requests** | š¢ **-14.8%** | Rikta is faster |
|
|
117
|
+
| **Param requests** | š¢ **-36.7%** | Rikta is faster |
|
|
118
|
+
| **Average** | š¢ **-32.0%** | Rikta is faster |
|
|
119
|
+
|
|
120
|
+
For detailed tests:
|
|
121
|
+
```bash
|
|
122
|
+
cd benchmarks
|
|
123
|
+
npm install
|
|
124
|
+
npm run bench
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Production Mode
|
|
128
|
+
|
|
129
|
+
For maximum performance, use silent mode:
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
const app = await Rikta.create({
|
|
133
|
+
port: 3000,
|
|
134
|
+
silent: true, // Disable all console output
|
|
135
|
+
logger: false // Disable Fastify logging
|
|
136
|
+
});
|
|
137
|
+
```
|
|
104
138
|
|
|
105
139
|
---
|
|
106
140
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAe1B,OAAO,EAAe,WAAW,EAAE,gBAAgB,EAAqB,MAAM,SAAS,CAAC;AASxF;;;;;GAKG;AACH,qBAAa,YAAY;IACvB;;;;;;;;;;;;;;OAcG;WACU,MAAM,CAAC,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAe1B,OAAO,EAAe,WAAW,EAAE,gBAAgB,EAAqB,MAAM,SAAS,CAAC;AASxF;;;;;GAKG;AACH,qBAAa,YAAY;IACvB;;;;;;;;;;;;;;OAcG;WACU,MAAM,CAAC,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAsBzE;AA2UD,OAAO,EAAE,YAAY,IAAI,KAAK,EAAE,CAAC"}
|
package/dist/core/application.js
CHANGED
|
@@ -37,15 +37,20 @@ class RiktaFactory {
|
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
39
|
static async create(config = {}) {
|
|
40
|
-
|
|
40
|
+
const silent = config.silent ?? false;
|
|
41
|
+
if (!silent)
|
|
42
|
+
console.log('\nš Rikta Framework Starting...\n');
|
|
41
43
|
const callerDir = (0, discovery_1.getCallerDirectory)();
|
|
42
44
|
let discoveredFiles = [];
|
|
43
45
|
// Auto-discovery: scan for controllers and services
|
|
44
|
-
if (!config.controllers) {
|
|
45
|
-
const patterns = config.autowired
|
|
46
|
-
|
|
46
|
+
if (!config.controllers && config.autowired !== false) {
|
|
47
|
+
const patterns = Array.isArray(config.autowired) && config.autowired.length > 0
|
|
48
|
+
? config.autowired
|
|
49
|
+
: ['./**'];
|
|
50
|
+
if (!silent)
|
|
51
|
+
console.log('\nš Auto-discovering modules...');
|
|
47
52
|
discoveredFiles = await (0, discovery_1.discoverModules)(patterns, callerDir);
|
|
48
|
-
if (discoveredFiles.length > 0) {
|
|
53
|
+
if (discoveredFiles.length > 0 && !silent) {
|
|
49
54
|
console.log(` Found ${discoveredFiles.length} module(s)`);
|
|
50
55
|
}
|
|
51
56
|
}
|
|
@@ -71,11 +76,14 @@ class RiktaApplicationImpl {
|
|
|
71
76
|
isListening = false;
|
|
72
77
|
address = '';
|
|
73
78
|
constructor(config) {
|
|
79
|
+
const silent = config.silent ?? false;
|
|
74
80
|
this.config = {
|
|
75
81
|
port: config.port ?? constants_1.DEFAULT_CONFIG.port,
|
|
76
82
|
host: config.host ?? constants_1.DEFAULT_CONFIG.host,
|
|
77
|
-
|
|
83
|
+
// If silent mode, disable logger unless explicitly set
|
|
84
|
+
logger: config.logger ?? (silent ? false : constants_1.DEFAULT_CONFIG.logger),
|
|
78
85
|
prefix: config.prefix ?? constants_1.DEFAULT_CONFIG.prefix,
|
|
86
|
+
silent: silent,
|
|
79
87
|
controllers: config.controllers,
|
|
80
88
|
providers: config.providers,
|
|
81
89
|
exceptionFilter: config.exceptionFilter,
|
|
@@ -95,9 +103,11 @@ class RiktaApplicationImpl {
|
|
|
95
103
|
*/
|
|
96
104
|
setupExceptionHandler() {
|
|
97
105
|
// Create global exception filter with config
|
|
106
|
+
// When silent mode is enabled, also disable exception logging unless explicitly enabled
|
|
107
|
+
const silent = this.config.silent ?? false;
|
|
98
108
|
const globalFilter = new exceptions_1.GlobalExceptionFilter({
|
|
99
109
|
includeStack: this.config.exceptionFilter?.includeStack,
|
|
100
|
-
logErrors: this.config.exceptionFilter?.logErrors,
|
|
110
|
+
logErrors: this.config.exceptionFilter?.logErrors ?? (silent ? false : true),
|
|
101
111
|
});
|
|
102
112
|
// Register custom exception filters
|
|
103
113
|
const customFilters = this.config.exceptionFilters ?? [];
|
|
@@ -117,13 +127,15 @@ class RiktaApplicationImpl {
|
|
|
117
127
|
}
|
|
118
128
|
// Set Fastify error handler
|
|
119
129
|
this.server.setErrorHandler((0, exceptions_1.createExceptionHandler)(globalFilter, this.customExceptionFilters));
|
|
120
|
-
|
|
130
|
+
if (!this.config.silent)
|
|
131
|
+
console.log('š”ļø Exception handler configured');
|
|
121
132
|
}
|
|
122
133
|
/**
|
|
123
134
|
* Initialize the application
|
|
124
135
|
*/
|
|
125
136
|
async init(discoveredFiles = []) {
|
|
126
|
-
|
|
137
|
+
if (!this.config.silent)
|
|
138
|
+
console.log('\nš§ Rikta Framework Initializing...\n');
|
|
127
139
|
// Emit discovery event
|
|
128
140
|
await this.events.emit('app:discovery', { files: discoveredFiles });
|
|
129
141
|
// 1. Process @Provider classes first
|
|
@@ -144,9 +156,10 @@ class RiktaApplicationImpl {
|
|
|
144
156
|
}
|
|
145
157
|
// 5. Register routes
|
|
146
158
|
const controllers = this.config.controllers ?? registry_1.registry.getControllers();
|
|
147
|
-
|
|
159
|
+
if (!this.config.silent)
|
|
160
|
+
console.log('š” Registering routes:');
|
|
148
161
|
for (const controller of controllers) {
|
|
149
|
-
this.router.registerController(controller);
|
|
162
|
+
this.router.registerController(controller, this.config.silent);
|
|
150
163
|
}
|
|
151
164
|
await this.events.emit('app:routes', { count: controllers.length });
|
|
152
165
|
// 6. Call onApplicationBootstrap hooks
|
|
@@ -154,7 +167,8 @@ class RiktaApplicationImpl {
|
|
|
154
167
|
await this.events.emit('app:bootstrap', {
|
|
155
168
|
providerCount: this.initializedProviders.length
|
|
156
169
|
});
|
|
157
|
-
|
|
170
|
+
if (!this.config.silent)
|
|
171
|
+
console.log('\nā
Application initialized successfully\n');
|
|
158
172
|
}
|
|
159
173
|
/**
|
|
160
174
|
* Process all @Provider decorated classes
|
|
@@ -259,7 +273,8 @@ class RiktaApplicationImpl {
|
|
|
259
273
|
host: this.config.host,
|
|
260
274
|
});
|
|
261
275
|
this.isListening = true;
|
|
262
|
-
|
|
276
|
+
if (!this.config.silent)
|
|
277
|
+
console.log(`š Server listening on ${this.address}\n`);
|
|
263
278
|
// Call onApplicationListen hooks
|
|
264
279
|
for (const { instance } of this.initializedProviders) {
|
|
265
280
|
if (this.hasHook(instance, 'onApplicationListen')) {
|
|
@@ -298,7 +313,8 @@ class RiktaApplicationImpl {
|
|
|
298
313
|
await this.events.emit('app:destroy', {
|
|
299
314
|
uptime: Date.now() - this.startTime
|
|
300
315
|
});
|
|
301
|
-
|
|
316
|
+
if (!this.config.silent)
|
|
317
|
+
console.log('\nš Application closed\n');
|
|
302
318
|
}
|
|
303
319
|
/**
|
|
304
320
|
* Get the server URL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAC1B,sDAAmD;AACnD,qDAAkD;AAClD,4CAAyC;AACzC,yCAAsC;AACtC,2CAAkE;AAElE,qDAAiD;AACjD,2DAA8E;AAQ9E,2CAAqF;AACrF,6CAKsB;AAEtB;;;;;GAKG;AACH,MAAa,YAAY;IACvB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAsB,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAK1B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAK1B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,cAAc,CAuBvF"}
|
|
@@ -42,7 +42,6 @@ function Controller(prefixOrOptions) {
|
|
|
42
42
|
// Mark as injectable
|
|
43
43
|
Reflect.defineMetadata(constants_1.INJECTABLE_METADATA, { scope: 'singleton' }, target);
|
|
44
44
|
// Register in DI container
|
|
45
|
-
console.log(`ļæ½ Controller registered: ${target.name} (prefix: '${normalizedPrefix}')`);
|
|
46
45
|
container_1.container.register(target, { scope: 'singleton' });
|
|
47
46
|
// Auto-register in global registry for discovery
|
|
48
47
|
registry_1.registry.registerController(target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":";;AAoCA,
|
|
1
|
+
{"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":";;AAoCA,gCAuBC;AA3DD,4BAA0B;AAC1B,4CAAwE;AACxE,sDAAmD;AACnD,0CAAuC;AAUvC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,UAAU,CAAC,eAA4C;IACrE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,OAAO,eAAe,KAAK,QAAQ;YAChD,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,eAAe,EAAE,MAAM,IAAI,EAAE,CAAC;QAElC,0DAA0D;QAC1D,MAAM,gBAAgB,GAAG,MAAM;YAC7B,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YAClD,CAAC,CAAC,EAAE,CAAC;QAEP,4BAA4B;QAC5B,OAAO,CAAC,cAAc,CAAC,+BAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;QAElF,qBAAqB;QACrB,OAAO,CAAC,cAAc,CAAC,+BAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;QAE5E,2BAA2B;QAC3B,qBAAS,CAAC,QAAQ,CAAC,MAA6C,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAE1F,iDAAiD;QACjD,mBAAQ,CAAC,kBAAkB,CAAC,MAA6C,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"AA8DA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CACnC,QAAQ,GAAE,MAAM,EAAuB,EACvC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,EAAE,CAAC,CAqEnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|
package/dist/core/discovery.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,39 +9,52 @@ import { Constructor } from '../types';
|
|
|
9
9
|
* - Scanning controllers for route metadata
|
|
10
10
|
* - Registering routes with Fastify
|
|
11
11
|
* - Handling parameter injection
|
|
12
|
+
*
|
|
13
|
+
* Performance optimizations:
|
|
14
|
+
* - Pre-compiled parameter extractors
|
|
15
|
+
* - Guard instance caching
|
|
16
|
+
* - Fast path for simple routes
|
|
12
17
|
*/
|
|
13
18
|
export declare class Router {
|
|
14
19
|
private readonly server;
|
|
15
20
|
private readonly container;
|
|
16
21
|
private readonly globalPrefix;
|
|
22
|
+
/** Cache for guard instances (singleton per guard class) */
|
|
23
|
+
private readonly guardCache;
|
|
17
24
|
constructor(server: FastifyInstance, container: Container, globalPrefix?: string);
|
|
18
25
|
/**
|
|
19
26
|
* Register all routes from a controller
|
|
20
27
|
*/
|
|
21
|
-
registerController(controllerClass: Constructor): void;
|
|
28
|
+
registerController(controllerClass: Constructor, silent?: boolean): void;
|
|
22
29
|
/**
|
|
23
30
|
* Register a single route
|
|
24
31
|
*/
|
|
25
32
|
private registerRoute;
|
|
26
33
|
/**
|
|
27
|
-
*
|
|
34
|
+
* OPTIMIZATION: Compile parameter resolvers at route registration time
|
|
35
|
+
* Each resolver is a pre-built extractor function
|
|
28
36
|
*/
|
|
29
|
-
private
|
|
37
|
+
private compileParamResolvers;
|
|
38
|
+
/**
|
|
39
|
+
* OPTIMIZATION: Create a specialized extractor function for each param type
|
|
40
|
+
* This avoids switch statements at runtime
|
|
41
|
+
*/
|
|
42
|
+
private createParamExtractor;
|
|
30
43
|
/**
|
|
31
|
-
* Resolve
|
|
44
|
+
* OPTIMIZATION: Resolve params using pre-compiled extractors
|
|
32
45
|
*/
|
|
33
|
-
private
|
|
46
|
+
private resolveParamsOptimized;
|
|
34
47
|
/**
|
|
35
|
-
*
|
|
48
|
+
* OPTIMIZATION: Pre-resolve guard instances at route registration
|
|
36
49
|
*/
|
|
37
|
-
private
|
|
50
|
+
private resolveGuardInstances;
|
|
38
51
|
/**
|
|
39
|
-
* Execute guards
|
|
40
|
-
* Guards are executed in order (controller-level first, then method-level)
|
|
41
|
-
* All guards must pass (AND logic)
|
|
42
|
-
*
|
|
43
|
-
* @throws ForbiddenException if any guard returns false
|
|
52
|
+
* OPTIMIZATION: Execute guards using pre-resolved instances
|
|
44
53
|
*/
|
|
45
|
-
private
|
|
54
|
+
private executeGuardsOptimized;
|
|
55
|
+
/**
|
|
56
|
+
* Build the full route path
|
|
57
|
+
*/
|
|
58
|
+
private buildPath;
|
|
46
59
|
}
|
|
47
60
|
//# sourceMappingURL=router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/core/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAQnD,OAAO,EAAE,WAAW,EAAiC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/core/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAQnD,OAAO,EAAE,WAAW,EAAiC,MAAM,UAAU,CAAC;AA6BtE;;;;;;;;;;;;GAYG;AACH,qBAAa,MAAM;IAKf,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;gBAG9C,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,SAAS,EACpB,YAAY,GAAE,MAAW;IAG5C;;OAEG;IACH,kBAAkB,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,GAAE,OAAe,GAAG,IAAI;IAuB/E;;OAEG;IACH,OAAO,CAAC,aAAa;IA+FrB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;YACW,sBAAsB;IAcpC;;OAEG;IACH,OAAO,CAAC,SAAS;CAQlB"}
|
|
@@ -14,11 +14,18 @@ const use_guards_decorator_1 = require("../guards/use-guards.decorator");
|
|
|
14
14
|
* - Scanning controllers for route metadata
|
|
15
15
|
* - Registering routes with Fastify
|
|
16
16
|
* - Handling parameter injection
|
|
17
|
+
*
|
|
18
|
+
* Performance optimizations:
|
|
19
|
+
* - Pre-compiled parameter extractors
|
|
20
|
+
* - Guard instance caching
|
|
21
|
+
* - Fast path for simple routes
|
|
17
22
|
*/
|
|
18
23
|
class Router {
|
|
19
24
|
server;
|
|
20
25
|
container;
|
|
21
26
|
globalPrefix;
|
|
27
|
+
/** Cache for guard instances (singleton per guard class) */
|
|
28
|
+
guardCache = new Map();
|
|
22
29
|
constructor(server, container, globalPrefix = '') {
|
|
23
30
|
this.server = server;
|
|
24
31
|
this.container = container;
|
|
@@ -27,7 +34,7 @@ class Router {
|
|
|
27
34
|
/**
|
|
28
35
|
* Register all routes from a controller
|
|
29
36
|
*/
|
|
30
|
-
registerController(controllerClass) {
|
|
37
|
+
registerController(controllerClass, silent = false) {
|
|
31
38
|
// Get controller metadata
|
|
32
39
|
const controllerMeta = Reflect.getMetadata(constants_1.CONTROLLER_METADATA, controllerClass);
|
|
33
40
|
if (!controllerMeta) {
|
|
@@ -40,13 +47,13 @@ class Router {
|
|
|
40
47
|
const routes = Reflect.getMetadata(constants_1.ROUTES_METADATA, controllerClass) ?? [];
|
|
41
48
|
// Register each route
|
|
42
49
|
for (const route of routes) {
|
|
43
|
-
this.registerRoute(controllerClass, controllerInstance, controllerMeta.prefix, route);
|
|
50
|
+
this.registerRoute(controllerClass, controllerInstance, controllerMeta.prefix, route, silent);
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
53
|
/**
|
|
47
54
|
* Register a single route
|
|
48
55
|
*/
|
|
49
|
-
registerRoute(controllerClass, controllerInstance, controllerPrefix, route) {
|
|
56
|
+
registerRoute(controllerClass, controllerInstance, controllerPrefix, route, silent = false) {
|
|
50
57
|
// Build full path
|
|
51
58
|
const fullPath = this.buildPath(controllerPrefix, route.path);
|
|
52
59
|
// Get the handler method
|
|
@@ -60,154 +67,199 @@ class Router {
|
|
|
60
67
|
const statusCode = Reflect.getMetadata(constants_1.HTTP_CODE_METADATA, controllerClass, route.handlerName);
|
|
61
68
|
// Get guards for this route (controller-level + method-level)
|
|
62
69
|
const guards = (0, use_guards_decorator_1.getGuardsMetadata)(controllerClass, route.handlerName);
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
// ============================================
|
|
71
|
+
// OPTIMIZATION: Pre-compile parameter resolvers
|
|
72
|
+
// ============================================
|
|
73
|
+
const compiledResolvers = this.compileParamResolvers(paramsMeta);
|
|
74
|
+
const hasParams = compiledResolvers.length > 0;
|
|
75
|
+
const maxParamIndex = hasParams ? Math.max(...compiledResolvers.map(r => r.index)) : -1;
|
|
76
|
+
// ============================================
|
|
77
|
+
// OPTIMIZATION: Pre-resolve guard instances
|
|
78
|
+
// ============================================
|
|
79
|
+
const guardInstances = this.resolveGuardInstances(guards);
|
|
80
|
+
const hasGuards = guardInstances.length > 0;
|
|
81
|
+
// ============================================
|
|
82
|
+
// OPTIMIZATION: Create specialized handlers
|
|
83
|
+
// ============================================
|
|
84
|
+
let routeHandler;
|
|
85
|
+
if (!hasGuards && !hasParams && !statusCode) {
|
|
86
|
+
// FAST PATH: No guards, no params, no custom status
|
|
87
|
+
routeHandler = async (_request, _reply) => {
|
|
88
|
+
return handler.call(controllerInstance);
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
else if (!hasGuards && !hasParams) {
|
|
92
|
+
// Fast path: Just status code
|
|
93
|
+
routeHandler = async (_request, reply) => {
|
|
94
|
+
const result = await handler.call(controllerInstance);
|
|
95
|
+
if (statusCode)
|
|
96
|
+
reply.status(statusCode);
|
|
97
|
+
return result;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
else if (!hasGuards) {
|
|
101
|
+
// Medium path: Params but no guards
|
|
102
|
+
routeHandler = async (request, reply) => {
|
|
103
|
+
const args = this.resolveParamsOptimized(compiledResolvers, maxParamIndex, request, reply);
|
|
81
104
|
const result = await handler.apply(controllerInstance, args);
|
|
82
|
-
|
|
83
|
-
if (statusCode) {
|
|
105
|
+
if (statusCode)
|
|
84
106
|
reply.status(statusCode);
|
|
85
|
-
}
|
|
86
|
-
// Return result (Fastify will serialize it)
|
|
87
107
|
return result;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// Full path: Guards + params
|
|
112
|
+
// Pre-create execution context factory for this route
|
|
113
|
+
const createContext = (req, rep) => new execution_context_1.ExecutionContextImpl(req, rep, controllerClass, route.handlerName);
|
|
114
|
+
routeHandler = async (request, reply) => {
|
|
115
|
+
// Execute guards with cached instances
|
|
116
|
+
await this.executeGuardsOptimized(guardInstances, createContext(request, reply));
|
|
117
|
+
// Resolve params if needed
|
|
118
|
+
const args = hasParams
|
|
119
|
+
? this.resolveParamsOptimized(compiledResolvers, maxParamIndex, request, reply)
|
|
120
|
+
: [];
|
|
121
|
+
const result = await handler.apply(controllerInstance, args);
|
|
122
|
+
if (statusCode)
|
|
123
|
+
reply.status(statusCode);
|
|
124
|
+
return result;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
94
127
|
// Register with Fastify
|
|
95
128
|
const method = route.method.toLowerCase();
|
|
96
129
|
this.server[method](fullPath, routeHandler);
|
|
97
130
|
// Log route registration
|
|
98
|
-
|
|
131
|
+
if (!silent)
|
|
132
|
+
console.log(` ā ${route.method.padEnd(7)} ${fullPath}`);
|
|
99
133
|
}
|
|
100
134
|
/**
|
|
101
|
-
*
|
|
135
|
+
* OPTIMIZATION: Compile parameter resolvers at route registration time
|
|
136
|
+
* Each resolver is a pre-built extractor function
|
|
102
137
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
.filter(Boolean)
|
|
106
|
-
.join('');
|
|
107
|
-
// Normalize multiple slashes
|
|
108
|
-
return parts.replace(/\/+/g, '/') || '/';
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Resolve handler parameters based on metadata
|
|
112
|
-
*/
|
|
113
|
-
resolveParams(paramsMeta, context) {
|
|
114
|
-
if (paramsMeta.length === 0) {
|
|
138
|
+
compileParamResolvers(paramsMeta) {
|
|
139
|
+
if (paramsMeta.length === 0)
|
|
115
140
|
return [];
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
return args;
|
|
141
|
+
return paramsMeta.map(param => {
|
|
142
|
+
const extractor = this.createParamExtractor(param);
|
|
143
|
+
return {
|
|
144
|
+
index: param.index,
|
|
145
|
+
extract: extractor,
|
|
146
|
+
zodSchema: param.zodSchema,
|
|
147
|
+
validationLabel: `${param.type}${param.key ? ` (${param.key})` : ''}`
|
|
148
|
+
};
|
|
149
|
+
});
|
|
126
150
|
}
|
|
127
151
|
/**
|
|
128
|
-
*
|
|
152
|
+
* OPTIMIZATION: Create a specialized extractor function for each param type
|
|
153
|
+
* This avoids switch statements at runtime
|
|
129
154
|
*/
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
let rawValue;
|
|
155
|
+
createParamExtractor(param) {
|
|
156
|
+
const key = param.key;
|
|
133
157
|
switch (param.type) {
|
|
134
158
|
case constants_1.ParamType.BODY:
|
|
135
|
-
|
|
136
|
-
?
|
|
137
|
-
:
|
|
138
|
-
break;
|
|
159
|
+
return key
|
|
160
|
+
? (ctx) => ctx.body?.[key]
|
|
161
|
+
: (ctx) => ctx.body;
|
|
139
162
|
case constants_1.ParamType.QUERY:
|
|
140
|
-
|
|
141
|
-
?
|
|
142
|
-
:
|
|
143
|
-
break;
|
|
163
|
+
return key
|
|
164
|
+
? (ctx) => ctx.query[key]
|
|
165
|
+
: (ctx) => ctx.query;
|
|
144
166
|
case constants_1.ParamType.PARAM:
|
|
145
|
-
|
|
146
|
-
?
|
|
147
|
-
:
|
|
148
|
-
break;
|
|
167
|
+
return key
|
|
168
|
+
? (ctx) => ctx.params[key]
|
|
169
|
+
: (ctx) => ctx.params;
|
|
149
170
|
case constants_1.ParamType.HEADERS:
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
171
|
+
const headerKey = key?.toLowerCase();
|
|
172
|
+
return headerKey
|
|
173
|
+
? (ctx) => ctx.request.headers[headerKey]
|
|
174
|
+
: (ctx) => ctx.request.headers;
|
|
154
175
|
case constants_1.ParamType.REQUEST:
|
|
155
|
-
return
|
|
176
|
+
return (ctx) => ctx.request;
|
|
156
177
|
case constants_1.ParamType.REPLY:
|
|
157
|
-
return
|
|
178
|
+
return (ctx) => ctx.reply;
|
|
158
179
|
case constants_1.ParamType.CONTEXT:
|
|
159
|
-
return
|
|
180
|
+
return (ctx) => ctx;
|
|
160
181
|
default:
|
|
161
|
-
return undefined;
|
|
182
|
+
return () => undefined;
|
|
162
183
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* OPTIMIZATION: Resolve params using pre-compiled extractors
|
|
187
|
+
*/
|
|
188
|
+
resolveParamsOptimized(resolvers, maxIndex, request, reply) {
|
|
189
|
+
// Build context once
|
|
190
|
+
const context = {
|
|
191
|
+
request,
|
|
192
|
+
reply,
|
|
193
|
+
params: request.params,
|
|
194
|
+
query: request.query,
|
|
195
|
+
body: request.body,
|
|
196
|
+
};
|
|
197
|
+
// Pre-allocate array
|
|
198
|
+
const args = new Array(maxIndex + 1);
|
|
199
|
+
for (let i = 0; i < resolvers.length; i++) {
|
|
200
|
+
const resolver = resolvers[i];
|
|
201
|
+
let value = resolver.extract(context);
|
|
202
|
+
// Validate if schema present
|
|
203
|
+
if (resolver.zodSchema) {
|
|
204
|
+
const result = resolver.zodSchema.safeParse(value);
|
|
205
|
+
if (!result.success) {
|
|
206
|
+
throw new validation_exception_1.ValidationException(result.error, `Validation failed for ${resolver.validationLabel}`);
|
|
207
|
+
}
|
|
208
|
+
value = result.data;
|
|
169
209
|
}
|
|
170
|
-
|
|
171
|
-
return result.data;
|
|
210
|
+
args[resolver.index] = value;
|
|
172
211
|
}
|
|
173
|
-
|
|
174
|
-
return rawValue;
|
|
212
|
+
return args;
|
|
175
213
|
}
|
|
176
214
|
/**
|
|
177
|
-
*
|
|
178
|
-
* Guards are executed in order (controller-level first, then method-level)
|
|
179
|
-
* All guards must pass (AND logic)
|
|
180
|
-
*
|
|
181
|
-
* @throws ForbiddenException if any guard returns false
|
|
215
|
+
* OPTIMIZATION: Pre-resolve guard instances at route registration
|
|
182
216
|
*/
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
217
|
+
resolveGuardInstances(guards) {
|
|
218
|
+
return guards.map(GuardClass => {
|
|
219
|
+
// Check cache first
|
|
220
|
+
let instance = this.guardCache.get(GuardClass);
|
|
221
|
+
if (instance)
|
|
222
|
+
return instance;
|
|
223
|
+
// Resolve from container
|
|
190
224
|
try {
|
|
191
|
-
|
|
225
|
+
instance = this.container.resolve(GuardClass);
|
|
192
226
|
}
|
|
193
227
|
catch (error) {
|
|
194
228
|
throw new Error(`Failed to resolve guard ${GuardClass.name}. ` +
|
|
195
229
|
`Make sure it is decorated with @Injectable(). ` +
|
|
196
230
|
`Original error: ${error instanceof Error ? error.message : String(error)}`);
|
|
197
231
|
}
|
|
198
|
-
// Verify
|
|
199
|
-
if (typeof
|
|
232
|
+
// Verify interface
|
|
233
|
+
if (typeof instance.canActivate !== 'function') {
|
|
200
234
|
throw new Error(`${GuardClass.name} does not implement CanActivate interface. ` +
|
|
201
235
|
`The guard must have a canActivate(context: ExecutionContext) method.`);
|
|
202
236
|
}
|
|
203
|
-
//
|
|
204
|
-
|
|
205
|
-
|
|
237
|
+
// Cache for future use
|
|
238
|
+
this.guardCache.set(GuardClass, instance);
|
|
239
|
+
return instance;
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* OPTIMIZATION: Execute guards using pre-resolved instances
|
|
244
|
+
*/
|
|
245
|
+
async executeGuardsOptimized(guardInstances, context) {
|
|
246
|
+
for (let i = 0; i < guardInstances.length; i++) {
|
|
247
|
+
const result = await guardInstances[i].canActivate(context);
|
|
206
248
|
if (result !== true) {
|
|
207
|
-
throw new exceptions_1.ForbiddenException(`Access denied by
|
|
249
|
+
throw new exceptions_1.ForbiddenException(`Access denied by guard`);
|
|
208
250
|
}
|
|
209
251
|
}
|
|
210
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Build the full route path
|
|
255
|
+
*/
|
|
256
|
+
buildPath(controllerPrefix, routePath) {
|
|
257
|
+
const parts = [this.globalPrefix, controllerPrefix, routePath]
|
|
258
|
+
.filter(Boolean)
|
|
259
|
+
.join('');
|
|
260
|
+
// Normalize multiple slashes
|
|
261
|
+
return parts.replace(/\/+/g, '/') || '/';
|
|
262
|
+
}
|
|
211
263
|
}
|
|
212
264
|
exports.Router = Router;
|
|
213
265
|
//# sourceMappingURL=router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/core/router/router.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAG1B,4CAMsB;AAGtB,6EAAyE;AACzE,yDAA8D;AAC9D,mEAAmE;AACnE,yEAA+E;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/core/router/router.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -80,6 +80,8 @@ export interface RiktaConfig {
|
|
|
80
80
|
host?: string;
|
|
81
81
|
/** Enable Fastify logging (default: true) */
|
|
82
82
|
logger?: boolean | object;
|
|
83
|
+
/** Disable all framework console output (default: false) */
|
|
84
|
+
silent?: boolean;
|
|
83
85
|
/** Global route prefix (default: '') */
|
|
84
86
|
prefix?: string;
|
|
85
87
|
/**
|
|
@@ -97,7 +99,7 @@ export interface RiktaConfig {
|
|
|
97
99
|
* autowired: ['./src/**\/*.controller.ts', './src/**\/*.service.ts']
|
|
98
100
|
* ```
|
|
99
101
|
*/
|
|
100
|
-
autowired?: string[];
|
|
102
|
+
autowired?: string[] | false;
|
|
101
103
|
/**
|
|
102
104
|
* Explicit list of controllers to register.
|
|
103
105
|
* If not provided, all @Controller decorated classes are auto-discovered.
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM7E;;GAEG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE1B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riktajs/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A fast and modern TypeScript backend framework with zero-config autowiring, powered by Fastify",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,7 +15,11 @@
|
|
|
15
15
|
"test:watch": "vitest",
|
|
16
16
|
"test:coverage": "vitest run --coverage",
|
|
17
17
|
"lint": "eslint src --ext .ts",
|
|
18
|
-
"prepublishOnly": "npm run build"
|
|
18
|
+
"prepublishOnly": "npm run build",
|
|
19
|
+
"bench": "cd benchmarks && npm install && npm run bench",
|
|
20
|
+
"bench:startup": "cd benchmarks && npm install && npm run bench:startup",
|
|
21
|
+
"bench:requests": "cd benchmarks && npm install && npm run bench:requests",
|
|
22
|
+
"bench:autocannon": "cd benchmarks && npm install && npm run bench:autocannon"
|
|
19
23
|
},
|
|
20
24
|
"keywords": [
|
|
21
25
|
"framework",
|
|
@@ -29,10 +33,10 @@
|
|
|
29
33
|
"author": "",
|
|
30
34
|
"license": "MIT",
|
|
31
35
|
"dependencies": {
|
|
32
|
-
"fast-glob": "
|
|
33
|
-
"fastify": "
|
|
34
|
-
"reflect-metadata": "
|
|
35
|
-
"zod": "
|
|
36
|
+
"fast-glob": "3.3.3",
|
|
37
|
+
"fastify": "5.3.2",
|
|
38
|
+
"reflect-metadata": "0.2.2",
|
|
39
|
+
"zod": "3.25.76"
|
|
36
40
|
},
|
|
37
41
|
"devDependencies": {
|
|
38
42
|
"@types/node": "^22.10.2",
|