@catbee/utils 0.0.8-rc.0 → 0.0.8-rc.2
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 +25 -1
- package/build/esm/config.d.ts +0 -1
- package/build/esm/config.js +6 -7
- package/build/esm/index.d.ts +0 -1
- package/build/esm/index.js +0 -1
- package/build/esm/servers/server.builder.d.ts +0 -1
- package/build/esm/servers/server.builder.js +99 -147
- package/build/esm/servers/server.d.ts +0 -1
- package/build/esm/servers/server.js +591 -876
- package/build/esm/types/api-response.d.ts +0 -1
- package/build/esm/types/api-response.js +0 -1
- package/build/esm/types/index.d.ts +0 -1
- package/build/esm/types/index.js +0 -1
- package/build/esm/types/server.d.ts +0 -1
- package/build/esm/types/server.js +0 -1
- package/build/esm/utils/array.utils.d.ts +0 -1
- package/build/esm/utils/array.utils.js +48 -86
- package/build/esm/utils/async.utils.d.ts +0 -1
- package/build/esm/utils/async.utils.js +247 -524
- package/build/esm/utils/cache.utils.d.ts +0 -1
- package/build/esm/utils/cache.utils.js +96 -301
- package/build/esm/utils/context-store.utils.d.ts +0 -1
- package/build/esm/utils/context-store.utils.js +62 -79
- package/build/esm/utils/crypto.utils.d.ts +0 -1
- package/build/esm/utils/crypto.utils.js +78 -175
- package/build/esm/utils/date.utils.d.ts +0 -1
- package/build/esm/utils/date.utils.js +47 -53
- package/build/esm/utils/decorators.utils.d.ts +201 -5
- package/build/esm/utils/decorators.utils.js +632 -285
- package/build/esm/utils/dir.utils.d.ts +0 -1
- package/build/esm/utils/dir.utils.js +264 -786
- package/build/esm/utils/env.utils.d.ts +0 -1
- package/build/esm/utils/env.utils.js +180 -271
- package/build/esm/utils/exception.utils.d.ts +0 -1
- package/build/esm/utils/exception.utils.js +112 -289
- package/build/esm/utils/fs.utils.d.ts +0 -1
- package/build/esm/utils/fs.utils.js +169 -401
- package/build/esm/utils/http-status-codes.d.ts +0 -1
- package/build/esm/utils/http-status-codes.js +0 -1
- package/build/esm/utils/id.utils.d.ts +0 -1
- package/build/esm/utils/id.utils.js +5 -9
- package/build/esm/utils/logger.utils.d.ts +0 -1
- package/build/esm/utils/logger.utils.js +34 -71
- package/build/esm/utils/middleware.utils.d.ts +0 -1
- package/build/esm/utils/middleware.utils.js +65 -155
- package/build/esm/utils/obj.utils.d.ts +0 -1
- package/build/esm/utils/obj.utils.js +69 -176
- package/build/esm/utils/performance.utils.d.ts +0 -1
- package/build/esm/utils/performance.utils.js +92 -195
- package/build/esm/utils/request.utils.d.ts +0 -1
- package/build/esm/utils/request.utils.js +41 -74
- package/build/esm/utils/response.utils.d.ts +0 -1
- package/build/esm/utils/response.utils.js +84 -107
- package/build/esm/utils/stream.utils.d.ts +0 -1
- package/build/esm/utils/stream.utils.js +38 -113
- package/build/esm/utils/string.utils.d.ts +0 -1
- package/build/esm/utils/string.utils.js +6 -11
- package/build/esm/utils/type.utils.d.ts +0 -1
- package/build/esm/utils/type.utils.js +8 -12
- package/build/esm/utils/url.utils.d.ts +0 -1
- package/build/esm/utils/url.utils.js +49 -127
- package/build/esm/utils/validate.utils.d.ts +0 -1
- package/build/esm/utils/validate.utils.js +23 -40
- package/package.json +3 -33
- package/build/esm/config.js.map +0 -1
- package/build/esm/index.js.map +0 -1
- package/build/esm/servers/server.builder.js.map +0 -1
- package/build/esm/servers/server.js.map +0 -1
- package/build/esm/types/api-response.js.map +0 -1
- package/build/esm/types/index.js.map +0 -1
- package/build/esm/types/server.js.map +0 -1
- package/build/esm/utils/array.utils.js.map +0 -1
- package/build/esm/utils/async.utils.js.map +0 -1
- package/build/esm/utils/cache.utils.js.map +0 -1
- package/build/esm/utils/context-store.utils.js.map +0 -1
- package/build/esm/utils/crypto.utils.js.map +0 -1
- package/build/esm/utils/date.utils.js.map +0 -1
- package/build/esm/utils/decorators.utils.js.map +0 -1
- package/build/esm/utils/dir.utils.js.map +0 -1
- package/build/esm/utils/env.utils.js.map +0 -1
- package/build/esm/utils/exception.utils.js.map +0 -1
- package/build/esm/utils/fs.utils.js.map +0 -1
- package/build/esm/utils/http-status-codes.js.map +0 -1
- package/build/esm/utils/id.utils.js.map +0 -1
- package/build/esm/utils/logger.utils.js.map +0 -1
- package/build/esm/utils/middleware.utils.js.map +0 -1
- package/build/esm/utils/obj.utils.js.map +0 -1
- package/build/esm/utils/performance.utils.js.map +0 -1
- package/build/esm/utils/request.utils.js.map +0 -1
- package/build/esm/utils/response.utils.js.map +0 -1
- package/build/esm/utils/stream.utils.js.map +0 -1
- package/build/esm/utils/string.utils.js.map +0 -1
- package/build/esm/utils/type.utils.js.map +0 -1
- package/build/esm/utils/url.utils.js.map +0 -1
- package/build/esm/utils/validate.utils.js.map +0 -1
- package/build/esnext/config.d.ts +0 -122
- package/build/esnext/config.js +0 -133
- package/build/esnext/config.js.map +0 -1
- package/build/esnext/index.d.ts +0 -27
- package/build/esnext/index.js +0 -50
- package/build/esnext/index.js.map +0 -1
- package/build/esnext/servers/server.builder.d.ts +0 -508
- package/build/esnext/servers/server.builder.js +0 -657
- package/build/esnext/servers/server.builder.js.map +0 -1
- package/build/esnext/servers/server.d.ts +0 -256
- package/build/esnext/servers/server.js +0 -955
- package/build/esnext/servers/server.js.map +0 -1
- package/build/esnext/types/api-response.d.ts +0 -152
- package/build/esnext/types/api-response.js +0 -34
- package/build/esnext/types/api-response.js.map +0 -1
- package/build/esnext/types/index.d.ts +0 -125
- package/build/esnext/types/index.js +0 -25
- package/build/esnext/types/index.js.map +0 -1
- package/build/esnext/types/server.d.ts +0 -268
- package/build/esnext/types/server.js +0 -25
- package/build/esnext/types/server.js.map +0 -1
- package/build/esnext/utils/array.utils.d.ts +0 -168
- package/build/esnext/utils/array.utils.js +0 -345
- package/build/esnext/utils/array.utils.js.map +0 -1
- package/build/esnext/utils/async.utils.d.ts +0 -265
- package/build/esnext/utils/async.utils.js +0 -620
- package/build/esnext/utils/async.utils.js.map +0 -1
- package/build/esnext/utils/cache.utils.d.ts +0 -153
- package/build/esnext/utils/cache.utils.js +0 -293
- package/build/esnext/utils/cache.utils.js.map +0 -1
- package/build/esnext/utils/context-store.utils.d.ts +0 -189
- package/build/esnext/utils/context-store.utils.js +0 -289
- package/build/esnext/utils/context-store.utils.js.map +0 -1
- package/build/esnext/utils/crypto.utils.d.ts +0 -160
- package/build/esnext/utils/crypto.utils.js +0 -276
- package/build/esnext/utils/crypto.utils.js.map +0 -1
- package/build/esnext/utils/date.utils.d.ts +0 -159
- package/build/esnext/utils/date.utils.js +0 -384
- package/build/esnext/utils/date.utils.js.map +0 -1
- package/build/esnext/utils/decorators.utils.d.ts +0 -315
- package/build/esnext/utils/decorators.utils.js +0 -504
- package/build/esnext/utils/decorators.utils.js.map +0 -1
- package/build/esnext/utils/dir.utils.d.ts +0 -196
- package/build/esnext/utils/dir.utils.js +0 -477
- package/build/esnext/utils/dir.utils.js.map +0 -1
- package/build/esnext/utils/env.utils.d.ts +0 -377
- package/build/esnext/utils/env.utils.js +0 -785
- package/build/esnext/utils/env.utils.js.map +0 -1
- package/build/esnext/utils/exception.utils.d.ts +0 -230
- package/build/esnext/utils/exception.utils.js +0 -381
- package/build/esnext/utils/exception.utils.js.map +0 -1
- package/build/esnext/utils/fs.utils.d.ts +0 -164
- package/build/esnext/utils/fs.utils.js +0 -349
- package/build/esnext/utils/fs.utils.js.map +0 -1
- package/build/esnext/utils/http-status-codes.d.ts +0 -266
- package/build/esnext/utils/http-status-codes.js +0 -295
- package/build/esnext/utils/http-status-codes.js.map +0 -1
- package/build/esnext/utils/id.utils.d.ts +0 -36
- package/build/esnext/utils/id.utils.js +0 -84
- package/build/esnext/utils/id.utils.js.map +0 -1
- package/build/esnext/utils/logger.utils.d.ts +0 -160
- package/build/esnext/utils/logger.utils.js +0 -300
- package/build/esnext/utils/logger.utils.js.map +0 -1
- package/build/esnext/utils/middleware.utils.d.ts +0 -100
- package/build/esnext/utils/middleware.utils.js +0 -236
- package/build/esnext/utils/middleware.utils.js.map +0 -1
- package/build/esnext/utils/obj.utils.d.ts +0 -124
- package/build/esnext/utils/obj.utils.js +0 -413
- package/build/esnext/utils/obj.utils.js.map +0 -1
- package/build/esnext/utils/performance.utils.d.ts +0 -136
- package/build/esnext/utils/performance.utils.js +0 -271
- package/build/esnext/utils/performance.utils.js.map +0 -1
- package/build/esnext/utils/request.utils.d.ts +0 -86
- package/build/esnext/utils/request.utils.js +0 -186
- package/build/esnext/utils/request.utils.js.map +0 -1
- package/build/esnext/utils/response.utils.d.ts +0 -163
- package/build/esnext/utils/response.utils.js +0 -247
- package/build/esnext/utils/response.utils.js.map +0 -1
- package/build/esnext/utils/stream.utils.d.ts +0 -88
- package/build/esnext/utils/stream.utils.js +0 -210
- package/build/esnext/utils/stream.utils.js.map +0 -1
- package/build/esnext/utils/string.utils.d.ts +0 -93
- package/build/esnext/utils/string.utils.js +0 -165
- package/build/esnext/utils/string.utils.js.map +0 -1
- package/build/esnext/utils/type.utils.d.ts +0 -90
- package/build/esnext/utils/type.utils.js +0 -187
- package/build/esnext/utils/type.utils.js.map +0 -1
- package/build/esnext/utils/url.utils.d.ts +0 -141
- package/build/esnext/utils/url.utils.js +0 -304
- package/build/esnext/utils/url.utils.js.map +0 -1
- package/build/esnext/utils/validate.utils.d.ts +0 -177
- package/build/esnext/utils/validate.utils.js +0 -320
- package/build/esnext/utils/validate.utils.js.map +0 -1
- package/build/src/config.d.ts +0 -122
- package/build/src/config.js +0 -138
- package/build/src/config.js.map +0 -1
- package/build/src/index.d.ts +0 -27
- package/build/src/index.js +0 -69
- package/build/src/index.js.map +0 -1
- package/build/src/servers/server.builder.d.ts +0 -508
- package/build/src/servers/server.builder.js +0 -661
- package/build/src/servers/server.builder.js.map +0 -1
- package/build/src/servers/server.d.ts +0 -256
- package/build/src/servers/server.js +0 -962
- package/build/src/servers/server.js.map +0 -1
- package/build/src/types/api-response.d.ts +0 -152
- package/build/src/types/api-response.js +0 -37
- package/build/src/types/api-response.js.map +0 -1
- package/build/src/types/index.d.ts +0 -125
- package/build/src/types/index.js +0 -26
- package/build/src/types/index.js.map +0 -1
- package/build/src/types/server.d.ts +0 -268
- package/build/src/types/server.js +0 -26
- package/build/src/types/server.js.map +0 -1
- package/build/src/utils/array.utils.d.ts +0 -168
- package/build/src/utils/array.utils.js +0 -364
- package/build/src/utils/array.utils.js.map +0 -1
- package/build/src/utils/async.utils.d.ts +0 -265
- package/build/src/utils/async.utils.js +0 -641
- package/build/src/utils/async.utils.js.map +0 -1
- package/build/src/utils/cache.utils.d.ts +0 -153
- package/build/src/utils/cache.utils.js +0 -297
- package/build/src/utils/cache.utils.js.map +0 -1
- package/build/src/utils/context-store.utils.d.ts +0 -189
- package/build/src/utils/context-store.utils.js +0 -296
- package/build/src/utils/context-store.utils.js.map +0 -1
- package/build/src/utils/crypto.utils.d.ts +0 -160
- package/build/src/utils/crypto.utils.js +0 -293
- package/build/src/utils/crypto.utils.js.map +0 -1
- package/build/src/utils/date.utils.d.ts +0 -159
- package/build/src/utils/date.utils.js +0 -396
- package/build/src/utils/date.utils.js.map +0 -1
- package/build/src/utils/decorators.utils.d.ts +0 -315
- package/build/src/utils/decorators.utils.js +0 -516
- package/build/src/utils/decorators.utils.js.map +0 -1
- package/build/src/utils/dir.utils.d.ts +0 -196
- package/build/src/utils/dir.utils.js +0 -501
- package/build/src/utils/dir.utils.js.map +0 -1
- package/build/src/utils/env.utils.d.ts +0 -377
- package/build/src/utils/env.utils.js +0 -789
- package/build/src/utils/env.utils.js.map +0 -1
- package/build/src/utils/exception.utils.d.ts +0 -230
- package/build/src/utils/exception.utils.js +0 -407
- package/build/src/utils/exception.utils.js.map +0 -1
- package/build/src/utils/fs.utils.d.ts +0 -164
- package/build/src/utils/fs.utils.js +0 -372
- package/build/src/utils/fs.utils.js.map +0 -1
- package/build/src/utils/http-status-codes.d.ts +0 -266
- package/build/src/utils/http-status-codes.js +0 -298
- package/build/src/utils/http-status-codes.js.map +0 -1
- package/build/src/utils/id.utils.d.ts +0 -36
- package/build/src/utils/id.utils.js +0 -91
- package/build/src/utils/id.utils.js.map +0 -1
- package/build/src/utils/logger.utils.d.ts +0 -160
- package/build/src/utils/logger.utils.js +0 -346
- package/build/src/utils/logger.utils.js.map +0 -1
- package/build/src/utils/middleware.utils.d.ts +0 -100
- package/build/src/utils/middleware.utils.js +0 -244
- package/build/src/utils/middleware.utils.js.map +0 -1
- package/build/src/utils/obj.utils.d.ts +0 -124
- package/build/src/utils/obj.utils.js +0 -429
- package/build/src/utils/obj.utils.js.map +0 -1
- package/build/src/utils/performance.utils.d.ts +0 -136
- package/build/src/utils/performance.utils.js +0 -278
- package/build/src/utils/performance.utils.js.map +0 -1
- package/build/src/utils/request.utils.d.ts +0 -86
- package/build/src/utils/request.utils.js +0 -195
- package/build/src/utils/request.utils.js.map +0 -1
- package/build/src/utils/response.utils.d.ts +0 -163
- package/build/src/utils/response.utils.js +0 -260
- package/build/src/utils/response.utils.js.map +0 -1
- package/build/src/utils/stream.utils.d.ts +0 -88
- package/build/src/utils/stream.utils.js +0 -218
- package/build/src/utils/stream.utils.js.map +0 -1
- package/build/src/utils/string.utils.d.ts +0 -93
- package/build/src/utils/string.utils.js +0 -179
- package/build/src/utils/string.utils.js.map +0 -1
- package/build/src/utils/type.utils.d.ts +0 -90
- package/build/src/utils/type.utils.js +0 -196
- package/build/src/utils/type.utils.js.map +0 -1
- package/build/src/utils/url.utils.d.ts +0 -141
- package/build/src/utils/url.utils.js +0 -317
- package/build/src/utils/url.utils.js.map +0 -1
- package/build/src/utils/validate.utils.d.ts +0 -177
- package/build/src/utils/validate.utils.js +0 -345
- package/build/src/utils/validate.utils.js.map +0 -1
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import type { RequestHandler, Router } from 'express';
|
|
2
2
|
import 'reflect-metadata';
|
|
3
|
+
type Constructor<T = any> = new (...args: any[]) => T;
|
|
4
|
+
export declare class DIContainer {
|
|
5
|
+
private instances;
|
|
6
|
+
private constructing;
|
|
7
|
+
register<T>(target: Constructor<T>): void;
|
|
8
|
+
get<T>(target: Constructor<T>): T;
|
|
9
|
+
clear(): void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Injectable decorator for marking classes as injectable.
|
|
13
|
+
*
|
|
14
|
+
* @returns Class decorator that marks a class as injectable and registers it with the DI container.
|
|
15
|
+
*/
|
|
16
|
+
export declare function Injectable(): ClassDecorator;
|
|
17
|
+
/**
|
|
18
|
+
* Inject decorator for injecting dependencies into class properties.
|
|
19
|
+
*
|
|
20
|
+
* @param targetClass - The class to inject
|
|
21
|
+
* @returns Property decorator that injects the specified class into the property
|
|
22
|
+
*/
|
|
23
|
+
export declare function Inject<T>(targetClass: new (...args: any[]) => T): PropertyDecorator;
|
|
3
24
|
/**
|
|
4
25
|
* Decorator for GET HTTP method routes.
|
|
5
26
|
*
|
|
@@ -212,8 +233,8 @@ export declare function HttpCode(status: number): MethodDecorator;
|
|
|
212
233
|
/**
|
|
213
234
|
* Decorator that adds a custom HTTP header to the response.
|
|
214
235
|
*
|
|
215
|
-
* @param
|
|
216
|
-
* @param value - Header value
|
|
236
|
+
* @param header - Header name-value pairs or a single header name and value
|
|
237
|
+
* @param value - Header value if a single header name is provided
|
|
217
238
|
* @returns Method decorator
|
|
218
239
|
*
|
|
219
240
|
* @example
|
|
@@ -224,9 +245,38 @@ export declare function HttpCode(status: number): MethodDecorator;
|
|
|
224
245
|
* // Response will include the Cache-Control header
|
|
225
246
|
* return { data: '...' };
|
|
226
247
|
* }
|
|
248
|
+
*/
|
|
249
|
+
export declare function Header(name: string, value: string): MethodDecorator & ClassDecorator;
|
|
250
|
+
/**
|
|
251
|
+
* Decorator that adds a custom HTTP headers to the response.
|
|
252
|
+
*
|
|
253
|
+
* @param headers - Header name-value pairs or a single header name and value
|
|
254
|
+
* @param value - Header value if a single header name is provided
|
|
255
|
+
* @returns Method decorator
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```ts
|
|
259
|
+
* @Get('/data')
|
|
260
|
+
* @Headers('Cache-Control', 'max-age=60')
|
|
261
|
+
* getData() {
|
|
262
|
+
* // Response will include the Cache-Control header
|
|
263
|
+
* return { data: '...' };
|
|
264
|
+
* }
|
|
265
|
+
*
|
|
266
|
+
* @Get('/data/:id')
|
|
267
|
+
* @Headers({
|
|
268
|
+
* 'Cache-Control': 'max-age=60',
|
|
269
|
+
* 'X-Custom-Header': 'custom-value',
|
|
270
|
+
* 'Content-Security-Policy': "default-src 'self'"
|
|
271
|
+
* })
|
|
272
|
+
* getData() {
|
|
273
|
+
* // Response will include all specified headers
|
|
274
|
+
* return { data: '...' };
|
|
275
|
+
* }
|
|
276
|
+
*
|
|
227
277
|
* ```
|
|
228
278
|
*/
|
|
229
|
-
export declare function
|
|
279
|
+
export declare function Headers(headers: Record<string, string> | string, value?: string): MethodDecorator & ClassDecorator;
|
|
230
280
|
/**
|
|
231
281
|
* Decorator that registers a function to run before route handler execution.
|
|
232
282
|
* Useful for pre-processing or logging.
|
|
@@ -266,6 +316,8 @@ export declare function After(fn: Function): MethodDecorator;
|
|
|
266
316
|
* Decorator that requires specific roles for accessing a route.
|
|
267
317
|
* Must be used with authentication middleware.
|
|
268
318
|
*
|
|
319
|
+
* Check req.user.roles for user roles[].
|
|
320
|
+
*
|
|
269
321
|
* @param roles - List of roles that can access this route
|
|
270
322
|
* @returns Method decorator
|
|
271
323
|
*
|
|
@@ -279,7 +331,7 @@ export declare function After(fn: Function): MethodDecorator;
|
|
|
279
331
|
* }
|
|
280
332
|
* ```
|
|
281
333
|
*/
|
|
282
|
-
export declare function Roles(...roles: string[]): MethodDecorator;
|
|
334
|
+
export declare function Roles(...roles: string[]): MethodDecorator & ClassDecorator;
|
|
283
335
|
/**
|
|
284
336
|
* Decorator that redirects to another URL.
|
|
285
337
|
*
|
|
@@ -304,6 +356,150 @@ export declare function Roles(...roles: string[]): MethodDecorator;
|
|
|
304
356
|
* ```
|
|
305
357
|
*/
|
|
306
358
|
export declare function Redirect(url?: string, statusCode?: number): MethodDecorator;
|
|
359
|
+
/**
|
|
360
|
+
* Decorator that adds caching to a route response.
|
|
361
|
+
*
|
|
362
|
+
* @param ttlSeconds - Time to live in seconds for the cache
|
|
363
|
+
* @returns Method decorator
|
|
364
|
+
*
|
|
365
|
+
* @example
|
|
366
|
+
* ```ts
|
|
367
|
+
* @Get('/data')
|
|
368
|
+
* @Cache(300) // Cache for 5 minutes
|
|
369
|
+
* getData() {
|
|
370
|
+
* return { data: 'expensive operation result' };
|
|
371
|
+
* }
|
|
372
|
+
* ```
|
|
373
|
+
*/
|
|
374
|
+
export declare function Cache(ttlSeconds: number): MethodDecorator & ClassDecorator;
|
|
375
|
+
/**
|
|
376
|
+
* Decorator that applies rate limiting to a route.
|
|
377
|
+
* Note: Requires 'express-rate-limit' package to be installed.
|
|
378
|
+
*
|
|
379
|
+
* @param limit - Maximum number of requests allowed in the window
|
|
380
|
+
* @param windowMs - Time window in milliseconds
|
|
381
|
+
* @returns Method decorator
|
|
382
|
+
*
|
|
383
|
+
* Default Options:
|
|
384
|
+
* - standardHeaders: true
|
|
385
|
+
* - legacyHeaders: false
|
|
386
|
+
*
|
|
387
|
+
* @example
|
|
388
|
+
* ```ts
|
|
389
|
+
* @Post('/login')
|
|
390
|
+
* @RateLimit({ max: 5, windowMs: 60000, standardHeaders: true, legacyHeaders: false }) // 5 requests per minute
|
|
391
|
+
* login(@Body() credentials: LoginDto) {
|
|
392
|
+
* return this.authService.login(credentials);
|
|
393
|
+
* }
|
|
394
|
+
* ```
|
|
395
|
+
*/
|
|
396
|
+
export declare function RateLimit(options: {
|
|
397
|
+
max: number;
|
|
398
|
+
windowMs: number;
|
|
399
|
+
standardHeaders?: boolean;
|
|
400
|
+
legacyHeaders?: boolean;
|
|
401
|
+
}): MethodDecorator & ClassDecorator;
|
|
402
|
+
/**
|
|
403
|
+
* Decorator that sets the content type for the response.
|
|
404
|
+
*
|
|
405
|
+
* @param type - MIME type for the response
|
|
406
|
+
* @returns Method decorator
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* ```ts
|
|
410
|
+
* @Get('/download')
|
|
411
|
+
* @ContentType('application/pdf')
|
|
412
|
+
* downloadPdf() {
|
|
413
|
+
* return this.fileService.generatePdf();
|
|
414
|
+
* }
|
|
415
|
+
* ```
|
|
416
|
+
*/
|
|
417
|
+
export declare function ContentType(type: string): MethodDecorator;
|
|
418
|
+
/**
|
|
419
|
+
* Decorator that adds API versioning to a route.
|
|
420
|
+
*
|
|
421
|
+
* @param version - Version string for the API endpoint
|
|
422
|
+
* @param options - Versioning options
|
|
423
|
+
* @returns Method decorator
|
|
424
|
+
*
|
|
425
|
+
* Default Options:
|
|
426
|
+
* - addPrefix: true
|
|
427
|
+
* - addHeader: true
|
|
428
|
+
* - headerName: 'X-API-Version'
|
|
429
|
+
*
|
|
430
|
+
* @example
|
|
431
|
+
* ```ts
|
|
432
|
+
*
|
|
433
|
+
* @Get('/users')
|
|
434
|
+
* @Version('v2')
|
|
435
|
+
* getUsersV2() {
|
|
436
|
+
* return this.userService.findAllV2();
|
|
437
|
+
* }
|
|
438
|
+
*
|
|
439
|
+
* @Get('/users')
|
|
440
|
+
* @Version('v2', { addPrefix: true, addHeader: true, headerName: 'X-API-Version' })
|
|
441
|
+
* getUsersV2() {
|
|
442
|
+
* // Route becomes /v2/users
|
|
443
|
+
* return this.userService.findAllV2();
|
|
444
|
+
* }
|
|
445
|
+
* ```
|
|
446
|
+
*/
|
|
447
|
+
export declare function Version(version: string, options?: {
|
|
448
|
+
addPrefix?: boolean;
|
|
449
|
+
addHeader?: boolean;
|
|
450
|
+
headerName?: string;
|
|
451
|
+
}): MethodDecorator & ClassDecorator;
|
|
452
|
+
/**
|
|
453
|
+
* Decorator that sets a timeout for route execution.
|
|
454
|
+
*
|
|
455
|
+
* @param ms - Timeout in milliseconds
|
|
456
|
+
* @returns Method decorator
|
|
457
|
+
*
|
|
458
|
+
* @example
|
|
459
|
+
* ```ts
|
|
460
|
+
* @Get('/slow-operation')
|
|
461
|
+
* @Timeout(30000) // 30 second timeout
|
|
462
|
+
* slowOperation() {
|
|
463
|
+
* return this.heavyService.processData();
|
|
464
|
+
* }
|
|
465
|
+
* ```
|
|
466
|
+
*/
|
|
467
|
+
export declare function Timeout(ms: number): MethodDecorator & ClassDecorator;
|
|
468
|
+
/**
|
|
469
|
+
* Decorator that adds comprehensive logging to a route.
|
|
470
|
+
*
|
|
471
|
+
* @param options - Logging configuration options
|
|
472
|
+
* @returns Method decorator
|
|
473
|
+
*
|
|
474
|
+
* Default Options:
|
|
475
|
+
* - logEntry: true
|
|
476
|
+
* - logExit: true
|
|
477
|
+
* - logBody: false
|
|
478
|
+
* - logParams: false
|
|
479
|
+
* - logResponse: false
|
|
480
|
+
*
|
|
481
|
+
* @example
|
|
482
|
+
* ```ts
|
|
483
|
+
* @Post('/users')
|
|
484
|
+
* @Log({
|
|
485
|
+
* logEntry: true,
|
|
486
|
+
* logExit: true,
|
|
487
|
+
* logBody: true,
|
|
488
|
+
* logParams: true,
|
|
489
|
+
* logResponse: false
|
|
490
|
+
* })
|
|
491
|
+
* createUser(@Body() userData: any) {
|
|
492
|
+
* return this.userService.create(userData);
|
|
493
|
+
* }
|
|
494
|
+
* ```
|
|
495
|
+
*/
|
|
496
|
+
export declare function Log(options?: {
|
|
497
|
+
logEntry?: boolean;
|
|
498
|
+
logExit?: boolean;
|
|
499
|
+
logBody?: boolean;
|
|
500
|
+
logParams?: boolean;
|
|
501
|
+
logResponse?: boolean;
|
|
502
|
+
}): MethodDecorator & ClassDecorator;
|
|
307
503
|
/**
|
|
308
504
|
* Registers all controller classes with the provided router.
|
|
309
505
|
* This function processes all decorators and sets up the Express routes.
|
|
@@ -312,4 +508,4 @@ export declare function Redirect(url?: string, statusCode?: number): MethodDecor
|
|
|
312
508
|
* @param controllers - Array of controller classes
|
|
313
509
|
*/
|
|
314
510
|
export declare function registerControllers(router: Router, controllers: any[]): void;
|
|
315
|
-
|
|
511
|
+
export {};
|