quantum-flow 1.12.3 → 1.15.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 +118 -17
- package/dist/app/aws/lambda.d.ts +11 -4
- package/dist/app/aws/lambda.js +43 -18
- package/dist/app/aws/lambda.js.map +1 -1
- package/dist/app/aws/utils/request.d.ts +2 -2
- package/dist/app/aws/utils/response.d.ts +3 -2
- package/dist/app/aws/utils/response.js +1 -1
- package/dist/app/aws/utils/response.js.map +1 -1
- package/dist/app/http/Application.d.ts +12 -4
- package/dist/app/http/Application.js +67 -26
- package/dist/app/http/Application.js.map +1 -1
- package/dist/app/plugin.d.ts +8 -0
- package/dist/app/plugin.js +43 -0
- package/dist/app/plugin.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.js +9 -1
- package/dist/constants.js.map +1 -1
- package/dist/core/Controller.js +3 -1
- package/dist/core/Controller.js.map +1 -1
- package/dist/core/Endpoint.d.ts +2 -2
- package/dist/core/Endpoint.js +4 -4
- package/dist/graphql/decorators.d.ts +49 -0
- package/dist/graphql/decorators.js +100 -0
- package/dist/graphql/decorators.js.map +1 -0
- package/dist/graphql/index.d.ts +2 -0
- package/dist/graphql/index.js +18 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/module.d.ts +15 -0
- package/dist/graphql/module.js +190 -0
- package/dist/graphql/module.js.map +1 -0
- package/dist/plugins/aws.d.ts +1 -0
- package/dist/plugins/aws.js +3 -0
- package/dist/plugins/aws.js.map +1 -0
- package/dist/plugins/http.d.ts +1 -0
- package/dist/plugins/http.js +3 -0
- package/dist/plugins/http.js.map +1 -0
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.js +1 -1
- package/dist/types/graphql.d.ts +38 -0
- package/dist/types/graphql.js +3 -0
- package/dist/types/graphql.js.map +1 -0
- package/dist/types/http.d.ts +37 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/lambda.d.ts +38 -1
- package/dist/types/plugins.d.ts +30 -0
- package/dist/types/plugins.js +3 -0
- package/dist/types/plugins.js.map +1 -0
- package/dist/utils/controller.js +5 -6
- package/dist/utils/controller.js.map +1 -1
- package/dist/utils/endpoint.d.ts +1 -0
- package/dist/utils/endpoint.js +15 -0
- package/dist/utils/endpoint.js.map +1 -1
- package/dist/utils/graphql.d.ts +1 -0
- package/dist/utils/graphql.js +3 -0
- package/dist/utils/graphql.js.map +1 -0
- package/dist/utils/helper.d.ts +1 -0
- package/dist/utils/helper.js +4 -0
- package/dist/utils/helper.js.map +1 -1
- package/dist/utils/server.js.map +1 -1
- package/package.json +18 -1
package/README.md
CHANGED
|
@@ -23,6 +23,9 @@ You can use controllers and server functionality by importing controllers and cr
|
|
|
23
23
|
- `quantum-flow/middlewares` - Core middlewares to use within the application.
|
|
24
24
|
- `quantum-flow/ws` - Websocket decorators.
|
|
25
25
|
- `quantum-flow/sse` - Server side events decorators.
|
|
26
|
+
- `quantum-flow/plugins/aws` - Exports plugins types for lambda.
|
|
27
|
+
- `quantum-flow/plugins/http` - Exports plugins types for http server.
|
|
28
|
+
- `quantum-flow/graphql` - Graphql components.
|
|
26
29
|
|
|
27
30
|
---
|
|
28
31
|
|
|
@@ -42,7 +45,7 @@ import {
|
|
|
42
45
|
Request,
|
|
43
46
|
Response,
|
|
44
47
|
Status,
|
|
45
|
-
|
|
48
|
+
ANY,
|
|
46
49
|
} from 'quantum-flow/core';
|
|
47
50
|
import {IsString} from 'class-validator'
|
|
48
51
|
import { Catch, Cors, Sanitize, Use, SANITIZER } from 'quantum-flow/middlewares';
|
|
@@ -86,7 +89,7 @@ export class User {
|
|
|
86
89
|
) {
|
|
87
90
|
}
|
|
88
91
|
|
|
89
|
-
@
|
|
92
|
+
@ANY([...middlewares])
|
|
90
93
|
async any(@Response() resp: any) {
|
|
91
94
|
...
|
|
92
95
|
}
|
|
@@ -156,14 +159,11 @@ let dbConnection = null;
|
|
|
156
159
|
prefix: 'api',
|
|
157
160
|
controllers: [UserController, SocketController],
|
|
158
161
|
})
|
|
159
|
-
class RootController {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
export const handler = LambdaAdapter.createHandler(RootController);
|
|
162
|
+
class RootController {}
|
|
163
|
+
const lambdaAdapter = new LambdaAdapter(Root);
|
|
164
|
+
lambdaAdapter.usePlugin(metricsPlugin);
|
|
165
|
+
|
|
166
|
+
export const handler = lambdaAdapter.handler;
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
# WebSocket Support
|
|
@@ -396,12 +396,113 @@ const server = new HttpServer(App);
|
|
|
396
396
|
server.listen().catch(console.error);
|
|
397
397
|
```
|
|
398
398
|
|
|
399
|
-
##
|
|
399
|
+
## Custom plugins.
|
|
400
|
+
|
|
401
|
+
Use plugins to extend app with custom logic.
|
|
402
|
+
|
|
403
|
+
Example server setup:
|
|
404
|
+
|
|
405
|
+
```typescript
|
|
406
|
+
import { Server, HttpServer } from 'quantum-flow/http';
|
|
407
|
+
import { User, UserMetadata } from './controllers';
|
|
408
|
+
import client from 'prom-client';
|
|
409
|
+
|
|
410
|
+
const register = new client.Registry();
|
|
411
|
+
client.collectDefaultMetrics({ register });
|
|
412
|
+
|
|
413
|
+
const httpRequestsTotal = new client.Counter({
|
|
414
|
+
name: 'http_requests_total',
|
|
415
|
+
help: 'Total number of HTTP requests',
|
|
416
|
+
labelNames: ['method', 'path', 'status'],
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
@Controller({ prefix: 'metrics' })
|
|
420
|
+
export class MetricsController {...}
|
|
421
|
+
@Server({...})
|
|
422
|
+
class App {}
|
|
423
|
+
|
|
424
|
+
const server = new HttpServer(App);
|
|
425
|
+
server.usePlugun(metricsPlugin)
|
|
426
|
+
server.listen().catch(console.error);
|
|
427
|
+
|
|
428
|
+
let connection;
|
|
429
|
+
const dbConnectionPlugin: Plugin = {
|
|
430
|
+
name: 'metric',
|
|
431
|
+
beforeRequest: async(server) => {
|
|
432
|
+
if(!connection){
|
|
433
|
+
connection = await connetct(...)
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
hooks: {...},
|
|
437
|
+
};
|
|
400
438
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
439
|
+
const lambdaAdapter = new LambdaAdapter(Root);
|
|
440
|
+
lambdaAdapter.usePlugin(dbConnectionPlugin);
|
|
441
|
+
|
|
442
|
+
export const handler = lambdaAdapter.handler;
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
# Using GraphQL Decorators
|
|
446
|
+
|
|
447
|
+
This project provides a set of decorators to define GraphQL schema and resolvers in a declarative way using TypeScript decorators.
|
|
448
|
+
|
|
449
|
+
### Available Decorators
|
|
450
|
+
|
|
451
|
+
- `@ObjectType(name?: string)`: Class decorator to define a GraphQL ObjectType.
|
|
452
|
+
- `@InputType(name?: string)`: Class decorator to define a GraphQL InputType.
|
|
453
|
+
- `@Field(type?)`: Property decorator to define a GraphQL field with optional type or nullable option.
|
|
454
|
+
- `@Arg(name?, type?, options?)`: Parameter decorator to define GraphQL arguments for resolver methods.
|
|
455
|
+
- `@Query(returnType?)`: Method decorator to define a GraphQL query resolver.
|
|
456
|
+
- `@Mutation(returnType?)`: Method decorator to define a GraphQL mutation resolver.
|
|
457
|
+
- `@Subscription(returnType?)`: Method decorator to define a GraphQL subscription resolver.
|
|
458
|
+
- `@Resolver()`: Class decorator to mark a class as a GraphQL resolver.
|
|
459
|
+
|
|
460
|
+
### Example Usage
|
|
461
|
+
|
|
462
|
+
```typescript
|
|
463
|
+
import { Controller } from 'quantum-flow/core';
|
|
464
|
+
import { Arg, Field, InputType, Mutation, ObjectType, Query } from 'quantum-flow/graphql';
|
|
465
|
+
|
|
466
|
+
@ObjectType('User')
|
|
467
|
+
class User {
|
|
468
|
+
@Field() id: string;
|
|
469
|
+
@Field() name: string;
|
|
470
|
+
@Field() email: string;
|
|
471
|
+
@Field({ nullable: true }) bio?: string;
|
|
472
|
+
@Field(() => [String]) roles: string[];
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
@InputType('CreateUserInput')
|
|
476
|
+
class CreateUserInput {
|
|
477
|
+
@Field() name: string;
|
|
478
|
+
@Field() email: string;
|
|
479
|
+
@Field({ nullable: true }) bio?: string;
|
|
480
|
+
@Field(() => [String]) roles?: string[];
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
@Controller('/graphql')
|
|
484
|
+
export class GraphQlController {
|
|
485
|
+
private users: User[] = [
|
|
486
|
+
/* initial users */
|
|
487
|
+
];
|
|
488
|
+
|
|
489
|
+
@Query(User)
|
|
490
|
+
async getUser(@Arg('id', String, { required: true }) id: string) {
|
|
491
|
+
// implementation
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
@Query(() => [User])
|
|
495
|
+
async getUsers() {
|
|
496
|
+
// implementation
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
@Mutation(User)
|
|
500
|
+
async createUser(@Arg('input', CreateUserInput, { required: true }) input: CreateUserInput) {
|
|
501
|
+
// implementation
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
// Additional queries and mutations...
|
|
505
|
+
}
|
|
506
|
+
```
|
|
406
507
|
|
|
407
|
-
This
|
|
508
|
+
This example demonstrates how to define GraphQL types and resolvers using decorators, enabling a clean and declarative schema definition.
|
package/dist/app/aws/lambda.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import { ControllerClass, ILambdaAdapter, LambdaPlugin } from '../../types/index.js';
|
|
1
2
|
import { Handler } from 'aws-lambda';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { Plugin } from '../plugin';
|
|
4
|
+
export declare class LambdaAdapter extends Plugin implements ILambdaAdapter {
|
|
5
|
+
handler: Handler;
|
|
6
|
+
controllers: ControllerClass[];
|
|
7
|
+
plugins: LambdaPlugin[];
|
|
8
|
+
constructor(Controller: ControllerClass);
|
|
9
|
+
private createHandler;
|
|
10
|
+
private runControllers;
|
|
11
|
+
private toLambdaResponse;
|
|
12
|
+
private handleError;
|
|
6
13
|
}
|
package/dist/app/aws/lambda.js
CHANGED
|
@@ -3,17 +3,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LambdaAdapter = void 0;
|
|
4
4
|
const _constants_1 = require("../../constants.js");
|
|
5
5
|
const _utils_1 = require("../../utils/index.js");
|
|
6
|
+
const plugin_1 = require("../plugin");
|
|
6
7
|
const utils_1 = require("./utils");
|
|
7
|
-
class LambdaAdapter {
|
|
8
|
-
|
|
8
|
+
class LambdaAdapter extends plugin_1.Plugin {
|
|
9
|
+
handler;
|
|
10
|
+
controllers = [];
|
|
11
|
+
plugins = [];
|
|
12
|
+
constructor(Controller) {
|
|
13
|
+
super();
|
|
14
|
+
this.controllers.push(Controller);
|
|
15
|
+
this.handler = this.createHandler(Controller);
|
|
16
|
+
}
|
|
17
|
+
createHandler(Controller) {
|
|
9
18
|
return async (event, context) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
await instance.beforeStart?.();
|
|
13
|
-
}
|
|
19
|
+
this.controllers.push(Controller);
|
|
20
|
+
await this.callPluginHook('beforeRequest', event, context);
|
|
14
21
|
const eventType = (0, utils_1.getEventType)(event);
|
|
15
22
|
const request = new utils_1.LRequest(event, context);
|
|
16
23
|
const response = new utils_1.LResponse();
|
|
24
|
+
return this.runControllers({
|
|
25
|
+
context,
|
|
26
|
+
event,
|
|
27
|
+
eventType,
|
|
28
|
+
request,
|
|
29
|
+
response,
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async runControllers(meta) {
|
|
34
|
+
const { request, response, eventType, event, context } = meta;
|
|
35
|
+
let processed;
|
|
36
|
+
for (const ControllerClass of this.controllers ?? []) {
|
|
37
|
+
const instance = new ControllerClass();
|
|
17
38
|
try {
|
|
18
39
|
const cors = Reflect.getMetadata(_constants_1.CORS_METADATA, instance);
|
|
19
40
|
let handledCors = { permitted: true, continue: true };
|
|
@@ -29,22 +50,25 @@ class LambdaAdapter {
|
|
|
29
50
|
if (typeof instance.handleRequest !== 'function') {
|
|
30
51
|
throw new Error('Controller must have handleRequest method');
|
|
31
52
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
if ((0, _utils_1.getErrorType)(data).isError) {
|
|
38
|
-
return this.handleError(data, event, context);
|
|
39
|
-
}
|
|
40
|
-
return this.toLambdaResponse(data, request, response, eventType);
|
|
53
|
+
await this.callPluginHook('beforeRoute', request, response);
|
|
54
|
+
processed = await instance.handleRequest(request, response);
|
|
55
|
+
if (processed.routeMatch)
|
|
56
|
+
break;
|
|
41
57
|
}
|
|
42
58
|
catch (error) {
|
|
43
59
|
return this.handleError(error, event, context);
|
|
44
60
|
}
|
|
45
|
-
}
|
|
61
|
+
}
|
|
62
|
+
if (!processed?.routeMatch) {
|
|
63
|
+
response.statusCode = 404;
|
|
64
|
+
return this.toLambdaResponse({ data: 'Route not found' }, request, response, eventType);
|
|
65
|
+
}
|
|
66
|
+
if ((0, _utils_1.getErrorType)(processed?.data).isError) {
|
|
67
|
+
return this.handleError(processed?.data, event, context);
|
|
68
|
+
}
|
|
69
|
+
return this.toLambdaResponse(processed?.data, request, response, eventType);
|
|
46
70
|
}
|
|
47
|
-
|
|
71
|
+
toLambdaResponse(data, request, response, eventType) {
|
|
48
72
|
const statusCode = data.status ?? response.statusCode ?? 200;
|
|
49
73
|
const headers = {
|
|
50
74
|
'Content-Type': 'application/json',
|
|
@@ -80,6 +104,7 @@ class LambdaAdapter {
|
|
|
80
104
|
body: data.data ?? data.error,
|
|
81
105
|
timestamp: new Date().toISOString(),
|
|
82
106
|
};
|
|
107
|
+
this.callPluginHook('afterResponse', request, response);
|
|
83
108
|
switch (eventType) {
|
|
84
109
|
case 'rest':
|
|
85
110
|
return { ...commonResponse, isBase64Encoded: false };
|
|
@@ -105,7 +130,7 @@ class LambdaAdapter {
|
|
|
105
130
|
};
|
|
106
131
|
}
|
|
107
132
|
}
|
|
108
|
-
|
|
133
|
+
handleError(error, event, context) {
|
|
109
134
|
let serialized = (0, _utils_1.serializeError)(error);
|
|
110
135
|
const eventType = (0, utils_1.getEventType)(event);
|
|
111
136
|
const statusCode = serialized.status || 500;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/app/aws/lambda.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAE3C,mCAAkE;AAElE,mCAA4D;AAE5D,MAAa,
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/app/aws/lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { HTTP_METHODS, LambdaEvent, MultipartFile } from '../../../types/index.js';
|
|
1
|
+
import { HTTP_METHODS, ILRequest, LambdaEvent, MultipartFile } from '../../../types/index.js';
|
|
2
2
|
import { Context } from 'aws-lambda';
|
|
3
|
-
export declare class LRequest {
|
|
3
|
+
export declare class LRequest implements ILRequest {
|
|
4
4
|
requestUrl: URL;
|
|
5
5
|
method: HTTP_METHODS;
|
|
6
6
|
path?: string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { ILResponse } from '../../../types/index.js';
|
|
1
2
|
import { ServerResponse } from 'http';
|
|
2
|
-
export declare class LResponse {
|
|
3
|
+
export declare class LResponse implements ILResponse {
|
|
3
4
|
private originalResponse?;
|
|
4
5
|
private _statusCode;
|
|
5
6
|
private _headers;
|
|
6
|
-
|
|
7
|
+
body: any;
|
|
7
8
|
constructor(originalResponse?: ServerResponse | undefined);
|
|
8
9
|
setHeader(name: string, value: string): void;
|
|
9
10
|
set statusCode(code: number);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../src/app/aws/utils/response.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../src/app/aws/utils/response.ts"],"names":[],"mappings":";;;AAGA,MAAa,SAAS;IAKA;IAJZ,WAAW,GAAW,GAAG,CAAC;IAC1B,QAAQ,GAA2B,EAAE,CAAC;IAC9C,IAAI,GAAQ,IAAI,CAAC;IAEjB,YAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IAAG,CAAC;IAEzD,SAAS,CAAC,IAAY,EAAE,KAAa;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC5B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,IAAY;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI;QACF,MAAM,4CAA4C,CAAC;IACrD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF;AApCD,8BAoCC"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import { ServerConfig } from '../../types/index.js';
|
|
1
|
+
import { ControllerType, HttpPlugin, IHttpServer, MiddlewareCB, ServerConfig } from '../../types/index.js';
|
|
2
2
|
import http from 'http';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { GraphQLModule } from '../../graphql/module';
|
|
4
|
+
import { Plugin } from '../plugin';
|
|
5
|
+
export declare class HttpServer extends Plugin implements IHttpServer {
|
|
6
|
+
app: http.Server;
|
|
7
|
+
plugins: HttpPlugin[];
|
|
5
8
|
private config;
|
|
6
9
|
private isRunning;
|
|
7
10
|
private sse?;
|
|
8
11
|
private websocket?;
|
|
9
12
|
private allControllers;
|
|
13
|
+
controllers: ControllerType[];
|
|
14
|
+
middlewares: MiddlewareCB[];
|
|
15
|
+
graphql?: GraphQLModule;
|
|
16
|
+
private graphqlHandler?;
|
|
10
17
|
constructor(configOrClass: new (...args: any[]) => any);
|
|
11
18
|
private logConfig;
|
|
12
19
|
listen(port?: number, host?: string): Promise<http.Server>;
|
|
@@ -22,5 +29,6 @@ export declare class HttpServer {
|
|
|
22
29
|
private runController;
|
|
23
30
|
private sendResponse;
|
|
24
31
|
private handleError;
|
|
25
|
-
private
|
|
32
|
+
private setupGraphQL;
|
|
33
|
+
use(middleware: MiddlewareCB): this;
|
|
26
34
|
}
|
|
@@ -6,38 +6,52 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.HttpServer = void 0;
|
|
7
7
|
const _constants_1 = require("../../constants.js");
|
|
8
8
|
const _utils_1 = require("../../utils/index.js");
|
|
9
|
+
const graphql_yoga_1 = require("graphql-yoga");
|
|
9
10
|
const http_1 = __importDefault(require("http"));
|
|
11
|
+
const module_1 = require("../../graphql/module");
|
|
10
12
|
const server_1 = require("../../sse/server");
|
|
11
13
|
const service_1 = require("../../sse/service");
|
|
12
14
|
const server_2 = require("../../ws/server");
|
|
13
15
|
const service_2 = require("../../ws/service");
|
|
14
|
-
|
|
16
|
+
const plugin_1 = require("../plugin");
|
|
17
|
+
class HttpServer extends plugin_1.Plugin {
|
|
15
18
|
app;
|
|
19
|
+
plugins = [];
|
|
16
20
|
config;
|
|
17
21
|
isRunning = false;
|
|
18
22
|
sse;
|
|
19
23
|
websocket;
|
|
20
24
|
allControllers;
|
|
25
|
+
controllers = [];
|
|
26
|
+
middlewares = [];
|
|
27
|
+
graphql;
|
|
28
|
+
graphqlHandler;
|
|
21
29
|
constructor(configOrClass) {
|
|
30
|
+
super();
|
|
22
31
|
this.config = (0, _utils_1.resolveConfig)(configOrClass);
|
|
32
|
+
this.controllers = this.controllers.concat(this.config.controllers ?? []);
|
|
33
|
+
this.middlewares = this.middlewares.concat(this.config.middlewares ?? []);
|
|
34
|
+
this.allControllers = this.getAllControllers(this.controllers);
|
|
23
35
|
const app = http_1.default.createServer(this.requestHandler.bind(this));
|
|
24
36
|
for (const st of this.config.statics ?? []) {
|
|
25
37
|
const staticMw = (0, _utils_1.staticMiddleware)(st.path, st.options);
|
|
26
|
-
this.
|
|
38
|
+
this.middlewares?.unshift(staticMw);
|
|
27
39
|
}
|
|
28
|
-
this.allControllers = this.getAllControllers(this.config.controllers);
|
|
29
|
-
this.setupStaticFiles();
|
|
30
40
|
if (this.config.websocket?.enabled) {
|
|
31
41
|
this.websocket = new server_2.WebSocketServer(app, { path: this.config.websocket.path });
|
|
32
42
|
this.websocket.registerControllers(this.allControllers);
|
|
33
43
|
service_2.WebSocketService.getInstance().initialize(this.websocket);
|
|
34
44
|
}
|
|
45
|
+
if (this.config.graphql?.enabled) {
|
|
46
|
+
this.setupGraphQL();
|
|
47
|
+
}
|
|
35
48
|
if (this.config.sse?.enabled) {
|
|
36
49
|
this.sse = new server_1.SSEServer();
|
|
37
50
|
this.sse.registerControllers(this.allControllers);
|
|
38
51
|
service_1.SSEService.getInstance().initialize(this.sse);
|
|
39
52
|
}
|
|
40
53
|
this.app = app;
|
|
54
|
+
console.log(this.controllers);
|
|
41
55
|
this.logConfig();
|
|
42
56
|
}
|
|
43
57
|
logConfig() {
|
|
@@ -48,11 +62,12 @@ class HttpServer {
|
|
|
48
62
|
║ 📍 Host: ${this.config.host}
|
|
49
63
|
║ 🔌 Port: ${this.config.port}
|
|
50
64
|
║ 🔌 Websocket: ${!!this.config.websocket}
|
|
51
|
-
║ 🔧 Global Middlewares: ${this.
|
|
65
|
+
║ 🔧 Global Middlewares: ${this.middlewares?.length || 0}
|
|
52
66
|
║ 🔧 Error handler: ${!this.config.errorHandler}
|
|
53
67
|
║ 🎯 Global Interceptors: ${!!this.config.interceptor?.length}
|
|
54
68
|
║ 📦 Controllers: ${_constants_1.STATISTIC.controllers}
|
|
55
|
-
║ 📦 Routes: ${
|
|
69
|
+
║ 📦 Routes: ${this.getAllControllers.length}
|
|
70
|
+
║ 📦 Graphql handler: ${!!this.config?.graphql?.enabled}
|
|
56
71
|
╚════════════════════════════════════════╝
|
|
57
72
|
`);
|
|
58
73
|
}
|
|
@@ -63,7 +78,7 @@ class HttpServer {
|
|
|
63
78
|
}
|
|
64
79
|
const listenPort = port || this.config.port || 3000;
|
|
65
80
|
const listenHost = host || this.config.host || 'localhost';
|
|
66
|
-
return new Promise((resolve, reject) => {
|
|
81
|
+
return new Promise(async (resolve, reject) => {
|
|
67
82
|
try {
|
|
68
83
|
this.app.listen(listenPort, listenHost, () => {
|
|
69
84
|
this.isRunning = true;
|
|
@@ -76,6 +91,7 @@ class HttpServer {
|
|
|
76
91
|
`);
|
|
77
92
|
resolve(this.app);
|
|
78
93
|
});
|
|
94
|
+
await this.callPluginMethod('onStart', this.app);
|
|
79
95
|
this.app.on('error', (error) => {
|
|
80
96
|
console.error('❌ Server error:', error);
|
|
81
97
|
reject(error);
|
|
@@ -102,7 +118,8 @@ class HttpServer {
|
|
|
102
118
|
resolve();
|
|
103
119
|
return;
|
|
104
120
|
}
|
|
105
|
-
this.app.close((err) => {
|
|
121
|
+
this.app.close(async (err) => {
|
|
122
|
+
await this.callPluginMethod('onStop', this.app);
|
|
106
123
|
if (err) {
|
|
107
124
|
reject(err);
|
|
108
125
|
}
|
|
@@ -122,11 +139,17 @@ class HttpServer {
|
|
|
122
139
|
async requestHandler(req, response) {
|
|
123
140
|
const startTime = Date.now();
|
|
124
141
|
let request;
|
|
142
|
+
try {
|
|
143
|
+
await this.callPluginHook('beforeRequest', req);
|
|
144
|
+
}
|
|
145
|
+
catch (data) {
|
|
146
|
+
return this.sendResponse(response, { status: 500, data }, startTime);
|
|
147
|
+
}
|
|
125
148
|
try {
|
|
126
149
|
request = await this.createRequest(req);
|
|
127
150
|
}
|
|
128
151
|
catch (err) {
|
|
129
|
-
return this.sendResponse(response, { status: 500,
|
|
152
|
+
return this.sendResponse(response, { status: 500, data: err.message }, startTime);
|
|
130
153
|
}
|
|
131
154
|
try {
|
|
132
155
|
let handledCors = { permitted: true, continue: true };
|
|
@@ -134,18 +157,19 @@ class HttpServer {
|
|
|
134
157
|
handledCors = (0, _utils_1.handleCORS)(request, response, this.config.cors);
|
|
135
158
|
}
|
|
136
159
|
if (!handledCors.permitted) {
|
|
137
|
-
return this.sendResponse(response, { status: 403, message: 'CORS: Origin not allowed' }, startTime);
|
|
160
|
+
return this.sendResponse(response, { status: 403, message: 'CORS: Origin not allowed' }, startTime, request);
|
|
138
161
|
}
|
|
139
162
|
if (!handledCors.continue && handledCors.permitted) {
|
|
140
|
-
return this.sendResponse(response, { status: 204 }, startTime);
|
|
163
|
+
return this.sendResponse(response, { status: 204 }, startTime, request);
|
|
141
164
|
}
|
|
142
165
|
await this.beforeRequest(request, response);
|
|
143
166
|
if (response.headersSent) {
|
|
144
167
|
return;
|
|
145
168
|
}
|
|
169
|
+
await this.callPluginHook('beforeRoute', request, response);
|
|
146
170
|
let controllerResponse = await this.runController(request, response);
|
|
147
171
|
if (!controllerResponse.routeMatch) {
|
|
148
|
-
return this.sendResponse(response, { status: 404, data: 'Route not found' }, Date.now());
|
|
172
|
+
return this.sendResponse(response, { status: 404, data: 'Route not found' }, Date.now(), request);
|
|
149
173
|
}
|
|
150
174
|
const isError = (0, _utils_1.getErrorType)(controllerResponse.data).isError || !_constants_1.OK_STATUSES.includes(response.statusCode);
|
|
151
175
|
if (isError) {
|
|
@@ -154,7 +178,7 @@ class HttpServer {
|
|
|
154
178
|
if (this.config.interceptor && controllerResponse) {
|
|
155
179
|
controllerResponse.data = await this.config.interceptor(controllerResponse, request, response);
|
|
156
180
|
}
|
|
157
|
-
return this.sendResponse(response, { status: response.statusCode ?? 200, data: controllerResponse.data }, startTime);
|
|
181
|
+
return this.sendResponse(response, { status: response.statusCode ?? 200, data: controllerResponse.data }, startTime, request);
|
|
158
182
|
}
|
|
159
183
|
catch (error) {
|
|
160
184
|
return this.handleError(error, request, response, startTime);
|
|
@@ -189,12 +213,12 @@ class HttpServer {
|
|
|
189
213
|
}
|
|
190
214
|
async beforeRequest(request, response) {
|
|
191
215
|
(0, _utils_1.sanitizeRequest)(request, this.config.sanitizers ?? []);
|
|
192
|
-
for (const middleware of this.
|
|
216
|
+
for (const middleware of this.middlewares?.reverse() || []) {
|
|
193
217
|
await middleware(request, response, _utils_1.NextFN);
|
|
194
218
|
}
|
|
195
219
|
}
|
|
196
220
|
async runController(request, response) {
|
|
197
|
-
for (const ControllerClass of this.
|
|
221
|
+
for (const ControllerClass of this.controllers ?? []) {
|
|
198
222
|
const instance = new ControllerClass();
|
|
199
223
|
if (typeof instance.handleRequest === 'function') {
|
|
200
224
|
const handlerResponse = await instance.handleRequest(request, response);
|
|
@@ -205,7 +229,7 @@ class HttpServer {
|
|
|
205
229
|
}
|
|
206
230
|
return {};
|
|
207
231
|
}
|
|
208
|
-
async sendResponse(res, responseData, startTime) {
|
|
232
|
+
async sendResponse(res, responseData, startTime, appRequest) {
|
|
209
233
|
if (res.headersSent)
|
|
210
234
|
return;
|
|
211
235
|
const { status, data } = responseData;
|
|
@@ -215,8 +239,10 @@ class HttpServer {
|
|
|
215
239
|
res.setHeader('X-Response-Time', `${Date.now() - startTime}ms`);
|
|
216
240
|
res.statusCode = status ?? data.status ?? 200;
|
|
217
241
|
res.end(JSON.stringify(data));
|
|
242
|
+
await this.callPluginHook('afterResponse', appRequest, res);
|
|
218
243
|
}
|
|
219
244
|
async handleError(error, request, response, startTime) {
|
|
245
|
+
console.log(error);
|
|
220
246
|
let serialized = (0, _utils_1.serializeError)(error);
|
|
221
247
|
if (!this.config.errorHandler) {
|
|
222
248
|
return this.sendResponse(response, { data: serialized }, startTime);
|
|
@@ -230,18 +256,33 @@ class HttpServer {
|
|
|
230
256
|
serialized = data ?? serialized;
|
|
231
257
|
}
|
|
232
258
|
catch (cathed) { }
|
|
233
|
-
return this.sendResponse(response, { data: serialized }, startTime);
|
|
259
|
+
return this.sendResponse(response, { data: serialized }, startTime, request);
|
|
234
260
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
261
|
+
setupGraphQL() {
|
|
262
|
+
if (!this.config.graphql?.enabled)
|
|
263
|
+
return;
|
|
264
|
+
const graphqlModule = new module_1.GraphQLModule(this.allControllers);
|
|
265
|
+
const schema = graphqlModule.getSchema();
|
|
266
|
+
const yoga = (0, graphql_yoga_1.createYoga)({
|
|
267
|
+
schema,
|
|
268
|
+
context: (req) => ({ req }),
|
|
269
|
+
graphiql: !!this.config.graphql?.playground,
|
|
270
|
+
});
|
|
271
|
+
this.graphqlHandler = yoga;
|
|
272
|
+
this.use(async (req, res, next) => {
|
|
273
|
+
const path = this.config.graphql?.path ?? '/graphql';
|
|
274
|
+
console.log('========', req.requestUrl.pathname, this.config.graphql?.path);
|
|
275
|
+
if (req.requestUrl.pathname?.startsWith(path)) {
|
|
276
|
+
const reps = await this.graphqlHandler(req, res);
|
|
277
|
+
console.log('========', reps);
|
|
278
|
+
return;
|
|
242
279
|
}
|
|
243
|
-
|
|
244
|
-
|
|
280
|
+
return next();
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
use(middleware) {
|
|
284
|
+
this.middlewares.unshift(middleware);
|
|
285
|
+
return this;
|
|
245
286
|
}
|
|
246
287
|
}
|
|
247
288
|
exports.HttpServer = HttpServer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../src/app/http/Application.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../src/app/http/Application.ts"],"names":[],"mappings":"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"}
|