@heliosjs/core 1.0.5 → 1.0.6
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 +15 -529
- package/dist/decorators.js +1 -1
- package/dist/decorators.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/types/core/common.d.ts +2 -2
- package/dist/types/core/error.d.ts +27 -10
- package/dist/types/core/response.d.ts +18 -3
- package/dist/utils/core/controller.d.ts +4 -4
- package/dist/utils/core/controller.js +11 -12
- package/dist/utils/core/controller.js.map +1 -1
- package/dist/utils/core/error/apperror.d.ts +2 -2
- package/dist/utils/core/error/apperror.js +1 -1
- package/dist/utils/core/error/apperror.js.map +1 -1
- package/dist/utils/core/error/base.d.ts +7 -3
- package/dist/utils/core/error/base.js +8 -4
- package/dist/utils/core/error/base.js.map +1 -1
- package/dist/utils/core/error/helpers.d.ts +1 -1
- package/dist/utils/core/error/helpers.js +1 -1
- package/dist/utils/core/error/helpers.js.map +1 -1
- package/dist/utils/core/response.d.ts +32 -10
- package/dist/utils/core/response.js +7 -7
- package/dist/utils/core/response.js.map +1 -1
- package/dist/utils/core/routeWalker.d.ts +1 -1
- package/dist/utils/core/routeWalker.js +6 -5
- package/dist/utils/core/routeWalker.js.map +1 -1
- package/dist/utils/shared/validate.d.ts +1 -1
- package/dist/utils/shared/validate.js +1 -0
- package/dist/utils/shared/validate.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,540 +1,26 @@
|
|
|
1
|
-
# Project Overview
|
|
2
|
-
|
|
3
|
-
This project is a decorator-based API framework supporting both HTTP and WebSocket servers. It is designed to simplify the creation of scalable and maintainable APIs with features such as controllers, middlewares, interceptors, error handling, and WebSocket support. Additionally, it supports AWS Lambda integration for serverless deployments.
|
|
4
|
-
|
|
5
|
-
# Installation
|
|
6
|
-
|
|
7
|
-
To install dependencies and build the project, run:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
yarn install
|
|
11
|
-
# or npm install
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
# Usage
|
|
15
|
-
|
|
16
|
-
You can use controllers and server functionality by importing controllers and creating server instances as shown in the examples above. Use your preferred testing framework to write unit and integration tests.
|
|
17
|
-
|
|
18
|
-
# Project Structure
|
|
19
|
-
|
|
20
|
-
- `quantum-flow/http` - Main application source code for HTTP servers.
|
|
21
|
-
- `quantum-flow/aws` - Main application source code for AWS Lambda.
|
|
22
|
-
- `quantum-flow/core` - Core framework components like Controller and Endpoint.
|
|
23
|
-
- `quantum-flow/middlewares` - Core middlewares to use within the application.
|
|
24
|
-
- `quantum-flow/ws` - Websocket decorators.
|
|
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
|
-
|
|
29
1
|
---
|
|
30
2
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Use the `@Controller` decorator to define controllers with options such as prefix, sub-controllers, middlewares, and interceptors.
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
import {
|
|
37
|
-
Body,
|
|
38
|
-
Controller,
|
|
39
|
-
Headers,
|
|
40
|
-
IWebSocketService,
|
|
41
|
-
Params,
|
|
42
|
-
PUT,
|
|
43
|
-
Query,
|
|
44
|
-
Request,
|
|
45
|
-
Response,
|
|
46
|
-
Status,
|
|
47
|
-
ANY,
|
|
48
|
-
Request,
|
|
49
|
-
Response
|
|
50
|
-
} from 'quantum-flow/core';
|
|
51
|
-
import {IsString} from 'class-validator'
|
|
52
|
-
import { Catch, Cors, Sanitize, Use, SANITIZER } from 'quantum-flow/middlewares';
|
|
53
|
-
import { InjectWS } from 'quantum-flow/ws';
|
|
54
|
-
import { HttpRequest } from 'quantum-flow/http';
|
|
55
|
-
// SANITIZER - prefilled Joi schema for common data
|
|
56
|
-
class UserDto {
|
|
57
|
-
constructor() {}
|
|
58
|
-
@IsString()
|
|
59
|
-
name: string;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
@Controller({
|
|
63
|
-
prefix: 'user',
|
|
64
|
-
controllers: [UserMetadata, ...],
|
|
65
|
-
interceptor: (data, req, res) => data,
|
|
66
|
-
})
|
|
67
|
-
@Cors({ origin: '*' })
|
|
68
|
-
@Catch((err) => ({ status: 500, err }))
|
|
69
|
-
@Use(()=>{})
|
|
70
|
-
@Sanitize({
|
|
71
|
-
schema: Joi.object({name: Joi.string().trim().min(2).max(50).required()}),
|
|
72
|
-
action: 'both',
|
|
73
|
-
options: { abortEarly: false },
|
|
74
|
-
stripUnknown: true,
|
|
75
|
-
type: 'body',
|
|
76
|
-
})
|
|
77
|
-
export class User {
|
|
78
|
-
@Status(201)
|
|
79
|
-
@PUT(':id',[(req, res)=>{} , ...middlewares])
|
|
80
|
-
@Cors({ origin: '*' })
|
|
81
|
-
async createUser(
|
|
82
|
-
@Body(UserDto) body: UserDto,
|
|
83
|
-
@Query() query: Record<string, string | string[]>,
|
|
84
|
-
@Headers() headers: Record<string, string | string[]>,
|
|
85
|
-
@Params(ParamDTO, 'param') params: string,
|
|
86
|
-
@Req() req: Response,
|
|
87
|
-
@Response() resp: Request,
|
|
88
|
-
@InjectWS() ws: IWebSocketService,
|
|
89
|
-
) {}
|
|
90
|
-
|
|
91
|
-
@ANY([...middlewares])
|
|
92
|
-
async any(@Response() resp: any) {...}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
@Controller(api, [...middlewares])
|
|
96
|
-
@Controller({
|
|
97
|
-
prefix: 'api',
|
|
98
|
-
controllers: [UserController, SocketController],
|
|
99
|
-
middlewares: [...middlewares],
|
|
100
|
-
interceptor: (data, req, res) => data,
|
|
101
|
-
})
|
|
102
|
-
@Catch((error) => ({ status: 400, error }))
|
|
103
|
-
class RootController {}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Creating a http Server
|
|
107
|
-
|
|
108
|
-
Use the `@Server` decorator with configuration options like port, host, controllers, and WebSocket enablement.
|
|
109
|
-
|
|
110
|
-
```typescript
|
|
111
|
-
import { Server, Port, Host, Use, Catch, HttpServer } from 'quantum-flow/http';
|
|
112
|
-
|
|
113
|
-
@Server({ controllers: [RootController], cors: { origin: '*' } })
|
|
114
|
-
@Port(3000)
|
|
115
|
-
@Host('localhost')
|
|
116
|
-
@Use((data) => data)
|
|
117
|
-
@Catch((error) => ({ status: 400, error }))
|
|
118
|
-
class App {}
|
|
119
|
-
|
|
120
|
-
const server = new HttpServer(App);
|
|
121
|
-
|
|
122
|
-
server.listen().catch(console.error);
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Middlewares, Interceptors, and Error Handlers
|
|
126
|
-
|
|
127
|
-
- Use `@Use` to apply middlewares.
|
|
128
|
-
- Use `@Catch` to handle errors.
|
|
129
|
-
- Use `@Port` and `@Host` to configure server port and host.
|
|
130
|
-
- Use `@Cors` to configure cors.
|
|
131
|
-
- Use `@Sanitize` to apply sanitization to reqest.
|
|
132
|
-
|
|
133
|
-
## Request decorators
|
|
134
|
-
|
|
135
|
-
- Use `@Body` to handle request bodies.
|
|
136
|
-
- Use `@Headers` to access request headers.
|
|
137
|
-
- Use `@Query` to handle query parameters.
|
|
138
|
-
- Use `@Params` to access route parameters.
|
|
139
|
-
- Use `@Files` to access files sent within multipart/form-data requests.
|
|
140
|
-
Text sent as multipart/form-data is exposed with `@Body` decorators
|
|
141
|
-
- Use `@Req` to access the original request object.
|
|
142
|
-
- Use `@Response` to access the original object.
|
|
143
|
-
- Use `@InjectWS` to access the websocket service.
|
|
144
|
-
- Use `@InjectSSE` to access the server-side-event service.
|
|
145
|
-
|
|
146
|
-
# AWS Lambda Support
|
|
147
|
-
|
|
148
|
-
Use `LambdaAdapter` to convert API Gateway events to requests and responses. Create Lambda handlers from controllers.
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
Example Lambda handler creation
|
|
152
|
-
import { LambdaAdapter, LambdaRequest, LambdaResponse } from 'quantum-flow/aws';
|
|
153
|
-
import { Request, Query, Headers, Params, Response, Response, Request } from 'quantum-flow/core'
|
|
154
|
-
|
|
155
|
-
@Controller({ prefix: 'user' })
|
|
156
|
-
class UserController {
|
|
157
|
-
@Body(UserDto) body: UserDto,
|
|
158
|
-
@Query() query: Record<string, string | string[]>,
|
|
159
|
-
@Headers() headers: Record<string, string | string[]>,
|
|
160
|
-
@Params(ParamDTO, 'param') params: string,
|
|
161
|
-
@Req() req: Request,
|
|
162
|
-
@Response() res: Response
|
|
163
|
-
) { }
|
|
164
|
-
}
|
|
165
|
-
const lambdaAdapter = new LambdaAdapter(UserController);
|
|
166
|
-
export const handler = lambdaAdapter.handler;
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
You can access context and event throught @Req() decorator:
|
|
170
|
-
@Req() request: LambdaRequest
|
|
171
|
-
request.context
|
|
172
|
-
request.event
|
|
173
|
-
|
|
174
|
-
# WebSocket Support
|
|
175
|
-
|
|
176
|
-
Enable WebSocket in the server configuration and register WebSocket controllers.
|
|
177
|
-
|
|
178
|
-
## Enabling WebSocket Support in Server
|
|
179
|
-
|
|
180
|
-
To enable WS support, configure your HTTP server with the `path: string` option and register controllers that use SSE.
|
|
181
|
-
|
|
182
|
-
Example server setup:
|
|
183
|
-
|
|
184
|
-
```typescript
|
|
185
|
-
@Server( { websocket: { path:'/ws' } })
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Injecting WebSocket events in Controller
|
|
189
|
-
|
|
190
|
-
```typescript
|
|
191
|
-
import { OnConnection, Subscribe, OnMessage } from 'quantum-flow/ws';
|
|
192
|
-
@Controller('socket')
|
|
193
|
-
export class Socket {
|
|
194
|
-
@OnConnection()
|
|
195
|
-
onConnection(event: WebSocketEvent) {
|
|
196
|
-
// Send greeting ONLY to this client
|
|
197
|
-
event.client.socket.send(JSON.stringify({ type: 'welcome', data: { message: 'Welcome!' } }));
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* 2. @Subscribe - AUTOMATIC broadcast to all subscribers
|
|
202
|
-
* No need to use WebSocketService!
|
|
203
|
-
*/
|
|
204
|
-
@Subscribe('chat')
|
|
205
|
-
onChatMessage(event: WebSocketEvent) {
|
|
206
|
-
// This method is called for EACH subscriber
|
|
207
|
-
// The message is ALREADY automatically broadcast to all!
|
|
208
|
-
|
|
209
|
-
const msg = event.message?.data;
|
|
210
|
-
// You can add logic, but no need to broadcast
|
|
211
|
-
if (msg?.text.includes('bad')) {
|
|
212
|
-
// If return empty, the message will not be sent
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
// That's it, the message will be sent to subscribers automatically!
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* 4. @OnMessage for commands (without WebSocketService)
|
|
221
|
-
*/
|
|
222
|
-
@OnMessage('ping')
|
|
223
|
-
onPing(event: WebSocketEvent) {
|
|
224
|
-
// Send response only to this client
|
|
225
|
-
event.client.socket.send(
|
|
226
|
-
JSON.stringify({
|
|
227
|
-
type: 'pong',
|
|
228
|
-
data: { time: Date.now() },
|
|
229
|
-
}),
|
|
230
|
-
);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* 5. @OnMessage for subscription
|
|
235
|
-
*/
|
|
236
|
-
@OnMessage('subscribe')
|
|
237
|
-
onSubscribe(event: WebSocketEvent) {
|
|
238
|
-
const topic = event.message?.data.topic;
|
|
239
|
-
|
|
240
|
-
// Server will save the subscription automatically, no need to do anything!
|
|
241
|
-
// Just confirm
|
|
242
|
-
event.client.socket.send(
|
|
243
|
-
JSON.stringify({
|
|
244
|
-
type: 'subscribed',
|
|
245
|
-
topic,
|
|
246
|
-
data: { success: true },
|
|
247
|
-
}),
|
|
248
|
-
);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
# Server-Sent Events (SSE) Support
|
|
254
|
-
|
|
255
|
-
The framework supports Server-Sent Events (SSE) to enable real-time, one-way communication from the server to clients over HTTP.
|
|
256
|
-
|
|
257
|
-
## Defining SSE Controllers
|
|
258
|
-
|
|
259
|
-
Use the `@Controller` decorator to define controllers with a `prefix` and optionally include sub-controllers. This allows modular organization of your API endpoints.
|
|
260
|
-
|
|
261
|
-
Example:
|
|
262
|
-
|
|
263
|
-
```typescript
|
|
264
|
-
@Controller({
|
|
265
|
-
prefix: 'user',
|
|
266
|
-
controllers: [UserMetadata],
|
|
267
|
-
middlewares: [function UserGlobalUse() {}],
|
|
268
|
-
interceptor: (data, req, res) => {
|
|
269
|
-
return { data, intercepted: true };
|
|
270
|
-
},
|
|
271
|
-
})
|
|
272
|
-
export class User {}
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
## Injecting SSE Service
|
|
276
|
-
|
|
277
|
-
Use the `@InjectSSE` decorator in your controller methods to create and manage SSE connections. This service allows sending events to connected clients.
|
|
278
|
-
|
|
279
|
-
Example method using SSE:
|
|
280
|
-
|
|
281
|
-
```typescript
|
|
282
|
-
import { InjectSSE } from 'quantum-flow/sse';
|
|
283
|
-
|
|
284
|
-
@Controller('user')
|
|
285
|
-
export class UserMetadata {
|
|
286
|
-
@Get('/subscribesse')
|
|
287
|
-
async subscribesse(@InjectSSE() sse) {
|
|
288
|
-
const client = sse.createConnection(res);
|
|
289
|
-
sse.sendToClient(client.id, {
|
|
290
|
-
event: 'welcome message',
|
|
291
|
-
data: { message: 'Connected to notifications' },
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## SSE Event Decorators
|
|
298
|
-
|
|
299
|
-
The framework provides decorators to handle SSE connection lifecycle events:
|
|
3
|
+
````markdown
|
|
4
|
+
# HeliosJS
|
|
300
5
|
|
|
301
|
-
|
|
302
|
-
- `@OnSSEError()`: Decorate a method to handle SSE errors.
|
|
303
|
-
- `@OnSSEClose()`: Decorate a method to handle SSE connection closures.
|
|
6
|
+
🎯 A modern decorator-based Node.js framework for building scalable applications.
|
|
304
7
|
|
|
305
|
-
|
|
8
|
+
## Documentation
|
|
306
9
|
|
|
307
|
-
|
|
308
|
-
import { OnSSEConnection, OnSSEError, OnSSEClose } from 'quantum-flow/sse';
|
|
10
|
+
👉 **[Full Documentation](https://naumovoleg.github.io/helios/)**
|
|
309
11
|
|
|
310
|
-
|
|
311
|
-
export class User {
|
|
312
|
-
@OnSSEConnection()
|
|
313
|
-
async onsseconnection(@Req() req, @Response() res) {
|
|
314
|
-
console.log('SSE connection established');
|
|
315
|
-
return req.body;
|
|
316
|
-
}
|
|
12
|
+
## Packages
|
|
317
13
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
@OnSSEClose()
|
|
325
|
-
async onsseclose(@Req() req, @Response() res) {
|
|
326
|
-
console.log('SSE connection closed');
|
|
327
|
-
return req.body;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
## Sending SSE Events
|
|
333
|
-
|
|
334
|
-
Use the injected SSE service to send events to clients. You can send events to all clients or specific clients by ID.
|
|
335
|
-
|
|
336
|
-
Example:
|
|
337
|
-
|
|
338
|
-
```typescript
|
|
339
|
-
sse.sendToClient(clientId, { event: 'eventName', data: { key: 'value' } });
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
## Enabling SSE Support in Server
|
|
343
|
-
|
|
344
|
-
To enable SSE support, configure your HTTP server with the `sse: true` option and register controllers that use SSE.
|
|
345
|
-
|
|
346
|
-
Example server setup:
|
|
347
|
-
|
|
348
|
-
```typescript
|
|
349
|
-
import { Server, HttpServer } from 'quantum-flow/http';
|
|
350
|
-
import { User, UserMetadata } from './controllers';
|
|
351
|
-
|
|
352
|
-
@Server({
|
|
353
|
-
controllers: [User, UserMetadata],
|
|
354
|
-
sse: { enabled: true },
|
|
355
|
-
})
|
|
356
|
-
class App {}
|
|
357
|
-
|
|
358
|
-
const server = new HttpServer(App);
|
|
359
|
-
server.listen().catch(console.error);
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
## Enabling static files
|
|
363
|
-
|
|
364
|
-
To enable serving static files, use statics option.
|
|
365
|
-
|
|
366
|
-
Example server setup:
|
|
367
|
-
|
|
368
|
-
```typescript
|
|
369
|
-
import { Server, HttpServer } from 'quantum-flow/http';
|
|
370
|
-
import { User, UserMetadata } from './controllers';
|
|
371
|
-
|
|
372
|
-
@Server({
|
|
373
|
-
statics: [
|
|
374
|
-
{
|
|
375
|
-
path: path.join(__dirname, './public'),
|
|
376
|
-
options: {
|
|
377
|
-
index: 'index.html',
|
|
378
|
-
extensions: ['html', 'htm', 'css', 'js'],
|
|
379
|
-
maxAge: 86400,
|
|
380
|
-
immutable: true,
|
|
381
|
-
dotfiles: 'deny',
|
|
382
|
-
fallthrough: false,
|
|
383
|
-
setHeaders: (res, filePath, stats) => {
|
|
384
|
-
if (filePath.endsWith('.css')) {
|
|
385
|
-
res.setHeader('Content-Type', 'text/css');
|
|
386
|
-
}
|
|
387
|
-
},
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
],
|
|
391
|
-
})
|
|
392
|
-
class App {}
|
|
393
|
-
|
|
394
|
-
const server = new HttpServer(App);
|
|
395
|
-
server.listen().catch(console.error);
|
|
396
|
-
```
|
|
14
|
+
| Package | Version | Description |
|
|
15
|
+
| ------------------------------------------------------------------------------------------------ | ----------------------- | ---------------------- |
|
|
16
|
+
| [@heliosjs/core](https://github.com/NaumovOleg/heliosjs/tree/master/packages/core) | | Core decorators and DI |
|
|
17
|
+
| [@heliosjs/http](https://github.com/NaumovOleg/heliosjs/tree/master/packages/http) | HTTP server and routing |
|
|
18
|
+
| [@heliosjs/middlewares](https://github.com/NaumovOleg/heliosjs/tree/master/packages/middlewares) | Built-in middleware |
|
|
19
|
+
| [@heliosjs/aws](https://github.com/NaumovOleg/heliosjs/tree/master/packages/aws) | Aws support |
|
|
397
20
|
|
|
398
|
-
##
|
|
399
|
-
|
|
400
|
-
Use plugins to extend app with custom logic.
|
|
401
|
-
|
|
402
|
-
Example server setup:
|
|
403
|
-
|
|
404
|
-
```typescript
|
|
405
|
-
import { Server, HttpServer } from 'quantum-flow/http';
|
|
406
|
-
import { User, UserMetadata } from './controllers';
|
|
407
|
-
import client from 'prom-client';
|
|
408
|
-
|
|
409
|
-
const register = new client.Registry();
|
|
410
|
-
client.collectDefaultMetrics({ register });
|
|
411
|
-
|
|
412
|
-
const httpRequestsTotal = new client.Counter({
|
|
413
|
-
name: 'http_requests_total',
|
|
414
|
-
help: 'Total number of HTTP requests',
|
|
415
|
-
labelNames: ['method', 'path', 'status'],
|
|
416
|
-
});
|
|
417
|
-
|
|
418
|
-
@Controller({ prefix: 'metrics' })
|
|
419
|
-
export class MetricsController {...}
|
|
420
|
-
@Server({...})
|
|
421
|
-
class App {}
|
|
422
|
-
|
|
423
|
-
const server = new HttpServer(App);
|
|
424
|
-
server.usePligun(metricsPlugin)
|
|
425
|
-
server.listen().catch(console.error);
|
|
426
|
-
|
|
427
|
-
// Lambda setup
|
|
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
|
-
};
|
|
438
|
-
|
|
439
|
-
const lambdaAdapter = new LambdaAdapter(Root);
|
|
440
|
-
lambdaAdapter.usePlugin(dbConnectionPlugin);
|
|
441
|
-
|
|
442
|
-
export const handler = lambdaAdapter.handler;
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
## GraphQL
|
|
446
|
-
|
|
447
|
-
Quantum Flow provides seamless GraphQL integration using the popular **TypeGraphQL** library. You can build fully typed GraphQL APIs with decorators, while the framework handles the server setup, subscriptions, and PubSub.
|
|
448
|
-
|
|
449
|
-
### Installation
|
|
21
|
+
## Quick Start
|
|
450
22
|
|
|
451
23
|
```bash
|
|
452
|
-
npm install
|
|
453
|
-
# or
|
|
454
|
-
yarn add type-graphql graphql graphql-yoga @graphql-yoga/subscriptions
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
```typescript
|
|
458
|
-
@Server({
|
|
459
|
-
controllers: [/* your REST controllers */],
|
|
460
|
-
graphql: { // GraphQL endpoint (default: '/graphql')
|
|
461
|
-
path: '/graphql', // Enable GraphQL Playground
|
|
462
|
-
resolvers: [UserResolver, MessageResolver], // Your resolver classes
|
|
463
|
-
pubSub: pubSub, // Your PubSub instance (required for subscriptions)
|
|
464
|
-
},
|
|
465
|
-
})
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
## Usage example
|
|
469
|
-
|
|
470
|
-
```typescript
|
|
471
|
-
import { IsEmail, MinLength } from 'class-validator';
|
|
472
|
-
import {
|
|
473
|
-
Arg,
|
|
474
|
-
Ctx,
|
|
475
|
-
Field,
|
|
476
|
-
InputType,
|
|
477
|
-
Mutation,
|
|
478
|
-
ObjectType,
|
|
479
|
-
Query,
|
|
480
|
-
Resolver,
|
|
481
|
-
Root,
|
|
482
|
-
Subscription,
|
|
483
|
-
} from 'type-graphql';
|
|
484
|
-
|
|
485
|
-
import { createPubSub } from 'graphql-yoga';
|
|
486
|
-
|
|
487
|
-
export type PubSubChannels = {
|
|
488
|
-
NOTIFICATIONS: [{ id: string; userId: string; message: string }];
|
|
489
|
-
USER_UPDATED: [{ user: User }];
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
export const pubSub = createPubSub<PubSubChannels>();
|
|
493
|
-
|
|
494
|
-
@ObjectType()
|
|
495
|
-
export class User {
|
|
496
|
-
@Field()
|
|
497
|
-
id: string;
|
|
498
|
-
@Field()
|
|
499
|
-
name: string;
|
|
500
|
-
@Field()
|
|
501
|
-
email: string;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
@InputType()
|
|
505
|
-
export class CreateUserInput {
|
|
506
|
-
@Field()
|
|
507
|
-
@MinLength(2)
|
|
508
|
-
name: string;
|
|
509
|
-
@Field()
|
|
510
|
-
@IsEmail()
|
|
511
|
-
email: string;
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
@Resolver()
|
|
515
|
-
export class UserResolver {
|
|
516
|
-
@Query(() => [User])
|
|
517
|
-
async users(): Promise<User[]> {
|
|
518
|
-
// pubSub.publish('USER_UPDATED', {...});
|
|
519
|
-
return [];
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
@Mutation(() => User)
|
|
523
|
-
async createUser(@Ctx() ctx: any, @Arg('input') input: CreateUserInput): Promise<User> {
|
|
524
|
-
const user = {
|
|
525
|
-
id: Date.now().toString(),
|
|
526
|
-
...input,
|
|
527
|
-
};
|
|
528
|
-
|
|
529
|
-
return user;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
@Subscription(() => User, {
|
|
533
|
-
topics: 'USER_UPDATED',
|
|
534
|
-
filter: ({ payload, args }) => true,
|
|
535
|
-
})
|
|
536
|
-
newUser(@Root() user: User): User {
|
|
537
|
-
return user;
|
|
538
|
-
}
|
|
539
|
-
}
|
|
24
|
+
npm install @heliosjs/core @heliosjs/http reflect-metadata
|
|
540
25
|
```
|
|
26
|
+
````
|
package/dist/decorators.js
CHANGED
|
@@ -28,7 +28,7 @@ exports.Body = Body;
|
|
|
28
28
|
* @Params(UserParamsDto) params: UserParamsDto
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
|
-
const Params = (dto, name) => (0, core_1.createParamDecorator)('params', typeof dto == 'string' ? undefined : dto,
|
|
31
|
+
const Params = (dto, name) => (0, core_1.createParamDecorator)('params', typeof dto == 'string' ? undefined : dto, typeof dto == 'string' ? dto : name);
|
|
32
32
|
exports.Params = Params;
|
|
33
33
|
/**
|
|
34
34
|
* Parameter decorator to extract query parameters.
|
package/dist/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAEpD;;;;;;;;;;GAUG;AACI,MAAM,IAAI,GAAG,CAAC,GAAS,EAAE,EAAE,CAAC,IAAA,2BAAoB,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAAxD,QAAA,IAAI,QAAoD;AAErE;;;;;;;;;;;;GAYG;AACI,MAAM,MAAM,GAAG,CAAC,GAAS,EAAE,IAAa,EAAE,EAAE,CACjD,IAAA,2BAAoB,EAClB,QAAQ,EACR,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EACxC,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAEpD;;;;;;;;;;GAUG;AACI,MAAM,IAAI,GAAG,CAAC,GAAS,EAAE,EAAE,CAAC,IAAA,2BAAoB,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAAxD,QAAA,IAAI,QAAoD;AAErE;;;;;;;;;;;;GAYG;AACI,MAAM,MAAM,GAAG,CAAC,GAAS,EAAE,IAAa,EAAE,EAAE,CACjD,IAAA,2BAAoB,EAClB,QAAQ,EACR,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EACxC,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACpC,CAAC;AALS,QAAA,MAAM,UAKf;AAEJ;;;;;;;;;;;;GAYG;AACI,MAAM,KAAK,GAAG,CAAC,GAAS,EAAE,IAAa,EAAE,EAAE,CAChD,IAAA,2BAAoB,EAClB,OAAO,EACP,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EACxC,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACpC,CAAC;AALS,QAAA,KAAK,SAKd;AAEJ;;;;;;;GAOG;AACI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAA,2BAAoB,EAAC,SAAS,CAAC,CAAC;AAA5C,QAAA,GAAG,OAAyC;AAEzD;;;;;;;;;;GAUG;AACI,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAA,2BAAoB,EAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAA9E,QAAA,OAAO,WAAuE;AAE3F;;;;;;;;;;GAUG;AACI,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAA,2BAAoB,EAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAA9E,QAAA,OAAO,WAAuE;AAE3F;;;;;;;;;;GAUG;AACI,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAA,2BAAoB,EAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAA9E,QAAA,KAAK,SAAyE;AAE3F;;;;;;;GAOG;AACI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAA,2BAAoB,EAAC,UAAU,CAAC,CAAC;AAA7C,QAAA,GAAG,OAA0C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
export * from './Controller';
|
|
8
8
|
export * from './decorators';
|
|
9
9
|
export * from './Endpoint';
|
|
10
|
-
export {
|
|
10
|
+
export { CORSConfig, ErrorCB, HeliosError, InterceptorCB, MiddlewareCB, MultipartFile, Request, Response, SanitizerConfig, } from './types/core';
|
|
11
11
|
export { SANITIZER } from './utils/core';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ServerResponse } from 'http';
|
|
2
|
-
import {
|
|
2
|
+
import { HeliosError } from './error';
|
|
3
3
|
import { Request } from './request';
|
|
4
4
|
import { Response } from './response';
|
|
5
5
|
export type Router = (req: Request, res?: ServerResponse) => Promise<{
|
|
@@ -12,7 +12,7 @@ export interface IController {
|
|
|
12
12
|
}
|
|
13
13
|
export type MiddlewareCB = (request: Request, response: Response, next: (args?: any) => any) => void | Promise<Request> | Request | Promise<void> | void;
|
|
14
14
|
export type InterceptorCB = (data: any, req?: Request, res?: Response) => Promise<unknown> | unknown;
|
|
15
|
-
export type ErrorCB = (error:
|
|
15
|
+
export type ErrorCB = (error: HeliosError, req?: Request, res?: Response) => any;
|
|
16
16
|
export type ParamDecoratorType = 'body' | 'params' | 'query' | 'request' | 'headers' | 'cookies' | 'response' | 'multipart' | 'event' | 'context' | 'sse' | 'ws';
|
|
17
17
|
export interface ParamMetadata {
|
|
18
18
|
index: number;
|
|
@@ -16,11 +16,11 @@ export declare enum ErrorCode {
|
|
|
16
16
|
}
|
|
17
17
|
export interface ErrorDetails {
|
|
18
18
|
field?: string;
|
|
19
|
-
value?:
|
|
19
|
+
value?: unknown;
|
|
20
20
|
constraint?: string;
|
|
21
|
-
[key: string]:
|
|
21
|
+
[key: string]: unknown;
|
|
22
22
|
}
|
|
23
|
-
export interface
|
|
23
|
+
export interface HeliosError extends Error {
|
|
24
24
|
code: ErrorCode;
|
|
25
25
|
status: number;
|
|
26
26
|
details?: ErrorDetails[];
|
|
@@ -30,7 +30,7 @@ export interface AppError extends Error {
|
|
|
30
30
|
method?: string;
|
|
31
31
|
toResponse(): ErrorResponse;
|
|
32
32
|
}
|
|
33
|
-
export interface IValidationError extends
|
|
33
|
+
export interface IValidationError extends HeliosError {
|
|
34
34
|
code: ErrorCode.VALIDATION_FAILED;
|
|
35
35
|
details?: ErrorDetails[];
|
|
36
36
|
}
|
|
@@ -50,7 +50,7 @@ export interface ErrorHandlerConfig {
|
|
|
50
50
|
includeStack?: boolean;
|
|
51
51
|
logErrors?: boolean;
|
|
52
52
|
logStack?: boolean;
|
|
53
|
-
customHandlers?: Record<ErrorCode, (error:
|
|
53
|
+
customHandlers?: Record<ErrorCode, (error: HeliosError) => unknown>;
|
|
54
54
|
}
|
|
55
55
|
export interface SerializedError {
|
|
56
56
|
type: 'Error' | 'HttpError' | 'AxiosError' | 'Unknown' | 'ValidationError';
|
|
@@ -58,15 +58,32 @@ export interface SerializedError {
|
|
|
58
58
|
status?: number;
|
|
59
59
|
code?: string;
|
|
60
60
|
stack?: string;
|
|
61
|
-
data?:
|
|
62
|
-
original?:
|
|
63
|
-
errors?:
|
|
61
|
+
data?: unknown;
|
|
62
|
+
original?: unknown;
|
|
63
|
+
errors?: unknown[];
|
|
64
64
|
details?: ErrorDetails[];
|
|
65
65
|
}
|
|
66
66
|
export interface ErrorHandlerConfig {
|
|
67
67
|
includeStack?: boolean;
|
|
68
68
|
logErrors?: boolean;
|
|
69
69
|
logStack?: boolean;
|
|
70
|
-
customHandlers?: Record<ErrorCode, (error:
|
|
70
|
+
customHandlers?: Record<ErrorCode, (error: HeliosError) => unknown>;
|
|
71
71
|
}
|
|
72
|
-
export type ErorrHandler = (error: Error, req: Request, response: Response) =>
|
|
72
|
+
export type ErorrHandler = (error: Error, req: Request, response: Response) => unknown;
|
|
73
|
+
type ErrorChildren = {
|
|
74
|
+
property?: string;
|
|
75
|
+
value: unknown;
|
|
76
|
+
constraints?: unknown[];
|
|
77
|
+
children?: ErrorChildren[];
|
|
78
|
+
};
|
|
79
|
+
export type ErrorObject = Partial<{
|
|
80
|
+
name: string;
|
|
81
|
+
status: number;
|
|
82
|
+
statusCode: number;
|
|
83
|
+
code: string;
|
|
84
|
+
message: string;
|
|
85
|
+
stack: string;
|
|
86
|
+
errors: ErrorChildren[];
|
|
87
|
+
details: ErrorDetails[];
|
|
88
|
+
}>;
|
|
89
|
+
export {};
|
|
@@ -18,13 +18,28 @@ export interface ResponseOptions {
|
|
|
18
18
|
isBase64Encoded?: boolean;
|
|
19
19
|
encoding?: BufferEncoding;
|
|
20
20
|
}
|
|
21
|
+
export type _Raw = Partial<{
|
|
22
|
+
headersSent: boolean;
|
|
23
|
+
statusCode: number;
|
|
24
|
+
headers: {
|
|
25
|
+
[key: string]: string | string[];
|
|
26
|
+
};
|
|
27
|
+
cookies: string[];
|
|
28
|
+
end(args: unknown): unknown;
|
|
29
|
+
requestUrl: URL;
|
|
30
|
+
method: string;
|
|
31
|
+
requestId: string;
|
|
32
|
+
sourceIp: string;
|
|
33
|
+
userAgent: string;
|
|
34
|
+
startTime: number;
|
|
35
|
+
}>;
|
|
21
36
|
export interface Response {
|
|
22
37
|
headers: Record<string, string | string[]>;
|
|
23
38
|
data: any;
|
|
24
39
|
cookies: string[];
|
|
25
40
|
isBase64Encoded: boolean;
|
|
26
41
|
source: ResponseSource;
|
|
27
|
-
raw:
|
|
42
|
+
raw: _Raw;
|
|
28
43
|
headersSent: boolean;
|
|
29
44
|
ok: boolean;
|
|
30
45
|
meta: {
|
|
@@ -42,8 +57,8 @@ export interface Response {
|
|
|
42
57
|
clearCookie(name: string, options?: CookieOptions): this;
|
|
43
58
|
getCookies(): string[];
|
|
44
59
|
redirect(url: string, statusCode?: number): this;
|
|
45
|
-
end(data: unknown):
|
|
60
|
+
end(data: unknown): unknown;
|
|
46
61
|
error(data: unknown): this;
|
|
47
62
|
reset(): this;
|
|
48
|
-
toJSON(): Record<string,
|
|
63
|
+
toJSON(): Record<string, unknown>;
|
|
49
64
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import { ControllerInstance, ControllerMethods, CORSConfig, InterceptorCB, MiddlewareCB, Request, Response, SanitizerConfig } from '../../types/core';
|
|
2
|
+
import { ControllerInstance, ControllerMethods, CORSConfig, ErrorObject, InterceptorCB, MiddlewareCB, Request, Response, SanitizerConfig } from '../../types/core';
|
|
3
3
|
export declare const executeControllerMethod: (controller: ControllerInstance, propertyName: string, request: Request, response: Response) => Promise<any>;
|
|
4
4
|
export declare const getControllerMethods: (controller: ControllerInstance) => ControllerMethods;
|
|
5
|
-
export declare const getAllMethods: (obj:
|
|
6
|
-
export declare const findRouteInController: (instance:
|
|
5
|
+
export declare const getAllMethods: (obj: unknown) => string[];
|
|
6
|
+
export declare const findRouteInController: (instance: ControllerInstance, path: string, route: string, method: string) => {
|
|
7
7
|
name: string;
|
|
8
8
|
pathParams: Record<string, string>;
|
|
9
9
|
priority: number;
|
|
@@ -11,7 +11,7 @@ export declare const findRouteInController: (instance: any, path: string, route:
|
|
|
11
11
|
cors?: CORSConfig;
|
|
12
12
|
sanitizers: SanitizerConfig[];
|
|
13
13
|
};
|
|
14
|
-
export declare const NextFunction: (error:
|
|
14
|
+
export declare const NextFunction: (error: ErrorObject) => void;
|
|
15
15
|
export declare const getResponse: (data: {
|
|
16
16
|
controllerInstance: ControllerInstance;
|
|
17
17
|
name: string;
|
|
@@ -80,11 +80,14 @@ const executeControllerMethod = async (controller, propertyName, request, respon
|
|
|
80
80
|
catch (error) {
|
|
81
81
|
if (typeof error === 'string') {
|
|
82
82
|
const catched = new Error(error);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
const errorData = {
|
|
84
|
+
stack: `${catched.name}: ${catched.message}\n at ${controller.constructor?.name}.${propertyName}\n${catched.stack}`,
|
|
85
|
+
original: error,
|
|
86
|
+
controller: controller.constructor?.name,
|
|
87
|
+
method: propertyName,
|
|
88
|
+
status: 500,
|
|
89
|
+
};
|
|
90
|
+
Object.assign(catched, errorData);
|
|
88
91
|
response.error(catched);
|
|
89
92
|
throw catched;
|
|
90
93
|
}
|
|
@@ -114,7 +117,7 @@ const getControllerMethods = (controller) => {
|
|
|
114
117
|
}
|
|
115
118
|
proto = Object.getPrototypeOf(proto);
|
|
116
119
|
}
|
|
117
|
-
return methods.sort((a
|
|
120
|
+
return methods.sort((a) => (a.httpMethod === core_1.HTTP_METHODS.ANY ? 1 : -1));
|
|
118
121
|
};
|
|
119
122
|
exports.getControllerMethods = getControllerMethods;
|
|
120
123
|
const getAllMethods = (obj) => {
|
|
@@ -194,12 +197,8 @@ const getResponse = async (data) => {
|
|
|
194
197
|
const propertyName = data.name;
|
|
195
198
|
const prototype = Object.getPrototypeOf(data.controllerInstance);
|
|
196
199
|
const methodOkStatus = Reflect.getMetadata(constants_1.OK_METADATA_KEY, data.controllerInstance, propertyName);
|
|
197
|
-
if (
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
const classOkStatus = Reflect.getMetadata(constants_1.OK_METADATA_KEY, prototype);
|
|
202
|
-
!isError && classOkStatus && (data.response.status = classOkStatus);
|
|
200
|
+
if (!isError) {
|
|
201
|
+
data.response.status = methodOkStatus ?? Reflect.getMetadata(constants_1.OK_METADATA_KEY, prototype);
|
|
203
202
|
}
|
|
204
203
|
return appResponse;
|
|
205
204
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/utils/core/controller.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,+CASyB;AACzB,
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/utils/core/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Meta } from '../../../types/core/common';
|
|
2
|
-
import { ErrorCode, ErrorDetails, ErrorHandlerConfig } from '../../../types/core/error';
|
|
2
|
+
import { ErrorCode, ErrorDetails, ErrorHandlerConfig, ErrorObject } from '../../../types/core/error';
|
|
3
3
|
export declare class ApplicationError {
|
|
4
4
|
private config;
|
|
5
5
|
code: ErrorCode;
|
|
@@ -10,7 +10,7 @@ export declare class ApplicationError {
|
|
|
10
10
|
requestId?: string;
|
|
11
11
|
path?: string;
|
|
12
12
|
stack?: unknown;
|
|
13
|
-
constructor(error:
|
|
13
|
+
constructor(error: ErrorObject | Error, data: {
|
|
14
14
|
meta: Meta;
|
|
15
15
|
config: ErrorHandlerConfig;
|
|
16
16
|
status?: number;
|
|
@@ -83,7 +83,7 @@ class ApplicationError {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
formatValidationErrors(errors) {
|
|
86
|
-
return errors
|
|
86
|
+
return errors?.map((error) => ({
|
|
87
87
|
field: error.property,
|
|
88
88
|
value: error.value,
|
|
89
89
|
constraints: error.constraints ? Object.values(error.constraints) : [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apperror.js","sourceRoot":"","sources":["../../../../src/utils/core/error/apperror.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"apperror.js","sourceRoot":"","sources":["../../../../src/utils/core/error/apperror.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class BaseError extends Error implements
|
|
1
|
+
import { ErrorCode, ErrorDetails, ErrorObject, ErrorResponse, HeliosError } from '../../../types/core/error';
|
|
2
|
+
export declare class BaseError extends Error implements HeliosError {
|
|
3
3
|
readonly code: ErrorCode;
|
|
4
4
|
readonly status: number;
|
|
5
5
|
readonly details?: ErrorDetails[];
|
|
@@ -7,6 +7,11 @@ export declare class BaseError extends Error implements AppError {
|
|
|
7
7
|
readonly requestId?: string;
|
|
8
8
|
readonly path?: string;
|
|
9
9
|
readonly method?: string;
|
|
10
|
+
cause?: ErrorObject;
|
|
11
|
+
name: string;
|
|
12
|
+
message: string;
|
|
13
|
+
stack?: string | undefined;
|
|
14
|
+
toResponse(): ErrorResponse;
|
|
10
15
|
constructor(code: ErrorCode, message: string, options?: {
|
|
11
16
|
status?: number;
|
|
12
17
|
details?: ErrorDetails[];
|
|
@@ -15,6 +20,5 @@ export declare class BaseError extends Error implements AppError {
|
|
|
15
20
|
method?: string;
|
|
16
21
|
cause?: Error;
|
|
17
22
|
});
|
|
18
|
-
toResponse(): ErrorResponse;
|
|
19
23
|
private getDefaultStatus;
|
|
20
24
|
}
|
|
@@ -10,9 +10,16 @@ class BaseError extends Error {
|
|
|
10
10
|
requestId;
|
|
11
11
|
path;
|
|
12
12
|
method;
|
|
13
|
+
cause;
|
|
14
|
+
name;
|
|
15
|
+
message = '';
|
|
16
|
+
stack;
|
|
17
|
+
toResponse() {
|
|
18
|
+
throw new Error('Method not implemented.');
|
|
19
|
+
}
|
|
13
20
|
constructor(code, message, options) {
|
|
14
21
|
super(message);
|
|
15
|
-
this.name = '
|
|
22
|
+
this.name = 'HeliosError';
|
|
16
23
|
this.code = code;
|
|
17
24
|
this.status = options?.status || this.getDefaultStatus(code);
|
|
18
25
|
this.details = options?.details;
|
|
@@ -25,9 +32,6 @@ class BaseError extends Error {
|
|
|
25
32
|
}
|
|
26
33
|
Error.captureStackTrace(this, this.constructor);
|
|
27
34
|
}
|
|
28
|
-
toResponse() {
|
|
29
|
-
throw new Error('Method not implemented.');
|
|
30
|
-
}
|
|
31
35
|
getDefaultStatus(code) {
|
|
32
36
|
switch (code) {
|
|
33
37
|
case error_1.ErrorCode.BAD_REQUEST:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/utils/core/error/base.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/utils/core/error/base.ts"],"names":[],"mappings":";;;AAAA,qDAMmC;AAEnC,MAAa,SAAU,SAAQ,KAAK;IAClB,IAAI,CAAY;IAChB,MAAM,CAAS;IACf,OAAO,CAAkB;IACzB,SAAS,CAAO;IAChB,SAAS,CAAU;IACnB,IAAI,CAAU;IACd,MAAM,CAAU;IAChC,KAAK,CAAe;IACpB,IAAI,CAAS;IACb,OAAO,GAAW,EAAE,CAAC;IACrB,KAAK,CAAsB;IAC3B,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,YACE,IAAe,EACf,OAAe,EACf,OAOC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAE9B,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAEO,gBAAgB,CAAC,IAAe;QACtC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,iBAAS,CAAC,WAAW,CAAC;YAC3B,KAAK,iBAAS,CAAC,iBAAiB;gBAC9B,OAAO,GAAG,CAAC;YACb,KAAK,iBAAS,CAAC,YAAY;gBACzB,OAAO,GAAG,CAAC;YACb,KAAK,iBAAS,CAAC,SAAS;gBACtB,OAAO,GAAG,CAAC;YACb,KAAK,iBAAS,CAAC,SAAS;gBACtB,OAAO,GAAG,CAAC;YACb,KAAK,iBAAS,CAAC,mBAAmB;gBAChC,OAAO,GAAG,CAAC;YACb,KAAK,iBAAS,CAAC,cAAc,CAAC;YAC9B,KAAK,iBAAS,CAAC,cAAc,CAAC;YAC9B;gBACE,OAAO,GAAG,CAAC;QACf,CAAC;IACH,CAAC;CACF;AA9DD,8BA8DC"}
|
|
@@ -3,6 +3,6 @@ export declare function serializeError(error: any): SerializedError;
|
|
|
3
3
|
export declare function isError(value: any): boolean;
|
|
4
4
|
export declare function getErrorType(error: any): {
|
|
5
5
|
isError: boolean;
|
|
6
|
-
type: '
|
|
6
|
+
type: 'HeliosError' | 'Error' | 'HttpError' | 'AxiosError' | 'ValidationError' | 'String' | 'Number' | 'Object' | 'Unknown' | null;
|
|
7
7
|
confidence: 'high' | 'medium' | 'low';
|
|
8
8
|
};
|
|
@@ -125,7 +125,7 @@ function getErrorType(error) {
|
|
|
125
125
|
return { isError: false, type: null, confidence: 'high' };
|
|
126
126
|
}
|
|
127
127
|
if (value?.code && typeof value.toResponse === 'function') {
|
|
128
|
-
return { isError: true, type: '
|
|
128
|
+
return { isError: true, type: 'HeliosError', confidence: 'high' };
|
|
129
129
|
}
|
|
130
130
|
if (value instanceof class_validator_1.ValidationError) {
|
|
131
131
|
return { isError: true, type: 'ValidationError', confidence: 'high' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/utils/core/error/helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/utils/core/error/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CookieOptions, Response } from '../../types/core';
|
|
1
|
+
import { CookieOptions, Response, _Raw } from '../../types/core';
|
|
2
2
|
import { Meta } from '../../types/core/common';
|
|
3
3
|
import { ResponseSource } from '../../types/core/response';
|
|
4
4
|
export declare class Res implements Response {
|
|
@@ -11,12 +11,26 @@ export declare class Res implements Response {
|
|
|
11
11
|
private _source;
|
|
12
12
|
private _raw;
|
|
13
13
|
meta: Meta;
|
|
14
|
-
constructor(source: ResponseSource | undefined, meta: Meta, raw
|
|
14
|
+
constructor(source: ResponseSource | undefined, meta: Meta, raw: _Raw);
|
|
15
15
|
get headers(): Record<string, string | string[]>;
|
|
16
16
|
get ok(): boolean;
|
|
17
|
-
get data():
|
|
18
|
-
set data(data:
|
|
19
|
-
get raw():
|
|
17
|
+
get data(): unknown;
|
|
18
|
+
set data(data: unknown);
|
|
19
|
+
get raw(): Partial<{
|
|
20
|
+
headersSent: boolean;
|
|
21
|
+
statusCode: number;
|
|
22
|
+
headers: {
|
|
23
|
+
[key: string]: string | string[];
|
|
24
|
+
};
|
|
25
|
+
cookies: string[];
|
|
26
|
+
end(args: unknown): unknown;
|
|
27
|
+
requestUrl: URL;
|
|
28
|
+
method: string;
|
|
29
|
+
requestId: string;
|
|
30
|
+
sourceIp: string;
|
|
31
|
+
userAgent: string;
|
|
32
|
+
startTime: number;
|
|
33
|
+
}>;
|
|
20
34
|
get cookies(): string[];
|
|
21
35
|
get isBase64Encoded(): boolean;
|
|
22
36
|
get source(): ResponseSource;
|
|
@@ -32,16 +46,24 @@ export declare class Res implements Response {
|
|
|
32
46
|
setCookie(name: string, value: string, options?: CookieOptions): this;
|
|
33
47
|
clearCookie(name: string, options?: CookieOptions): this;
|
|
34
48
|
getCookies(): string[];
|
|
35
|
-
send(body:
|
|
36
|
-
json(data:
|
|
49
|
+
send(body: unknown): this;
|
|
50
|
+
json(data: unknown): this;
|
|
37
51
|
text(text: string): this;
|
|
38
52
|
html(html: string): this;
|
|
39
53
|
buffer(data: Buffer, contentType?: string): this;
|
|
40
54
|
stream(readable: NodeJS.ReadableStream, contentType?: string): this;
|
|
41
|
-
end(data: unknown):
|
|
55
|
+
end(data: unknown): unknown;
|
|
42
56
|
redirect(url: string, statusCode?: number): this;
|
|
43
57
|
notFound(message?: string): this;
|
|
44
58
|
reset(): this;
|
|
45
|
-
toJSON():
|
|
46
|
-
|
|
59
|
+
toJSON(): {
|
|
60
|
+
statusCode: number;
|
|
61
|
+
headers: Record<string, string | string[]>;
|
|
62
|
+
cookies: string[];
|
|
63
|
+
isBase64Encoded: boolean;
|
|
64
|
+
data: unknown;
|
|
65
|
+
source: ResponseSource;
|
|
66
|
+
meta: Meta;
|
|
67
|
+
};
|
|
68
|
+
error(error: unknown): this;
|
|
47
69
|
}
|
|
@@ -68,12 +68,12 @@ class Res {
|
|
|
68
68
|
return this._source;
|
|
69
69
|
}
|
|
70
70
|
get headersSent() {
|
|
71
|
-
return this.raw
|
|
71
|
+
return this.raw?.headersSent ?? this._headersSent;
|
|
72
72
|
}
|
|
73
73
|
// ==================== Status Methods ====================
|
|
74
74
|
set status(code) {
|
|
75
75
|
this._status = code;
|
|
76
|
-
if (this.raw
|
|
76
|
+
if (this.raw?.statusCode) {
|
|
77
77
|
this.raw.statusCode = code;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -86,7 +86,7 @@ class Res {
|
|
|
86
86
|
// ==================== Header Methods ====================
|
|
87
87
|
setHeader(name, value) {
|
|
88
88
|
this._headers[name.toLowerCase()] = value;
|
|
89
|
-
if (this.raw
|
|
89
|
+
if (this.raw?.headers) {
|
|
90
90
|
this.raw.headers[name.toLowerCase()] = value;
|
|
91
91
|
}
|
|
92
92
|
return this;
|
|
@@ -99,7 +99,7 @@ class Res {
|
|
|
99
99
|
}
|
|
100
100
|
removeHeader(name) {
|
|
101
101
|
delete this._headers[name.toLowerCase()];
|
|
102
|
-
if (this.raw
|
|
102
|
+
if (this.raw?.headers) {
|
|
103
103
|
delete this.raw.headers[name.toLowerCase()];
|
|
104
104
|
}
|
|
105
105
|
return this;
|
|
@@ -145,7 +145,7 @@ class Res {
|
|
|
145
145
|
parts.push('Partitioned');
|
|
146
146
|
}
|
|
147
147
|
this._cookies.push(parts.join('; '));
|
|
148
|
-
if (this.raw
|
|
148
|
+
if (this.raw?.cookies) {
|
|
149
149
|
this.raw.cookies = this._cookies;
|
|
150
150
|
}
|
|
151
151
|
return this;
|
|
@@ -214,11 +214,11 @@ class Res {
|
|
|
214
214
|
end(data) {
|
|
215
215
|
const serialized = typeof data === 'object' ? JSON.stringify(data) : data;
|
|
216
216
|
this._headersSent = true;
|
|
217
|
-
if (typeof this.raw
|
|
217
|
+
if (typeof this.raw?.end !== 'function') {
|
|
218
218
|
console.log('Method not implemented');
|
|
219
219
|
}
|
|
220
220
|
this.setHeader('X-Response-Time', `${Date.now() - this.meta.startTime}ms`);
|
|
221
|
-
return this.raw
|
|
221
|
+
return this.raw?.end?.(serialized);
|
|
222
222
|
}
|
|
223
223
|
// ==================== Response Methods ====================
|
|
224
224
|
redirect(url, statusCode = 302) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/core/response.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAI9C,mCAA2C;AAE3C,MAAa,GAAG;IACN,OAAO,GAAW,GAAG,CAAC;IACtB,QAAQ,GAAsC,EAAE,CAAC;IACjD,KAAK,
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/core/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Request, Response, RouteContext } from '../../types/core';
|
|
2
|
-
export declare const routeWalker: (context: RouteContext, request: Request, response: Response) => Promise<
|
|
2
|
+
export declare const routeWalker: (context: RouteContext, request: Request, response: Response) => Promise<unknown>;
|
|
@@ -94,18 +94,19 @@ const routeWalker = async (context, request, response) => {
|
|
|
94
94
|
}
|
|
95
95
|
catch (error) {
|
|
96
96
|
let catched = error;
|
|
97
|
-
const statusCode =
|
|
97
|
+
const statusCode = catched.status ?? catched.statusCode ?? 500;
|
|
98
98
|
catched.status = statusCode;
|
|
99
99
|
response.error(error);
|
|
100
100
|
for (const handler of context.errorHandlerChain?.reverse() || []) {
|
|
101
101
|
try {
|
|
102
|
-
catched = await handler(
|
|
102
|
+
catched = await handler(response.data, request, response);
|
|
103
103
|
response.status = 200;
|
|
104
104
|
response.data = catched;
|
|
105
105
|
}
|
|
106
|
-
catch (
|
|
107
|
-
|
|
108
|
-
response.error
|
|
106
|
+
catch (err) {
|
|
107
|
+
const error = err;
|
|
108
|
+
response.status = error.status ?? error.statusCode ?? statusCode;
|
|
109
|
+
response.error(error);
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routeWalker.js","sourceRoot":"","sources":["../../../src/utils/core/routeWalker.ts"],"names":[],"mappings":";;;AAAA,+CASyB;AAEzB,6CAAgG;AAChG,iCAAoC;AACpC,yCAAkD;AAE3C,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAqB,EACrB,OAAgB,EAChB,QAAkB,
|
|
1
|
+
{"version":3,"file":"routeWalker.js","sourceRoot":"","sources":["../../../src/utils/core/routeWalker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function validate(dtoClass: any, data:
|
|
1
|
+
export declare function validate(dtoClass: any, data: unknown): Promise<any>;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validate = validate;
|
|
4
4
|
const class_transformer_1 = require("class-transformer");
|
|
5
5
|
const class_validator_1 = require("class-validator");
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
7
|
async function validate(dtoClass, data) {
|
|
7
8
|
if (!dtoClass) {
|
|
8
9
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/utils/shared/validate.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/utils/shared/validate.ts"],"names":[],"mappings":";;AAIA,4BA0BC;AA9BD,yDAAoD;AACpD,qDAAwE;AAExE,8DAA8D;AACvD,KAAK,UAAU,QAAQ,CAAC,QAAa,EAAE,IAAa;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAA,mCAAe,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAC7E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,eAAe,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAC/E,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAyB;IACvD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAE5C,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACzC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,SAAS,CAAC;QAEhB,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YACvC,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heliosjs/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Core functionality for Quantum Flow",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -35,5 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"typescript": ">=4.0.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/node": "^25.5.0"
|
|
38
41
|
}
|
|
39
42
|
}
|