UNPKG

@nestia/core

Version:

Super-fast validation decorators of NestJS

98 lines (97 loc) 3.93 kB
import { IResponseBodyStringifier } from "../options/IResponseBodyStringifier"; import { TypedRoute } from "./TypedRoute"; /** * Encrypted router decorator functions. * * `EncryptedRoute` is a module containing router decorator functions which * encrypts response body data through AES-128/256 encryption. Furthermore, they * can boost up JSON string conversion speed about 50x times faster than * `class-transformer`, even type safe through * [typia](https://github.com/samchon/typia). * * For reference, if you try to invalid data that is not following the promised * type `T`, 500 internal server error would be thrown. Also, as * `EncryptedRoute` composes JSON string through `typia.assertStringify<T>()` * function, it is not possible to modify response data through interceptors. * * - AES-128/256 * - CBC mode * - PKCS #5 Padding * - Base64 Encoding * * @author Jeongho Nam - https://github.com/samchon */ export declare namespace EncryptedRoute { /** * Encrypted router decorator function for the GET method. * * @param paths Path(s) of the HTTP request * @returns Method decorator */ const Get: { (path?: string | string[]): MethodDecorator; <T>(stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; <T>(path: string | string[], stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; }; /** * Encrypted router decorator function for the GET method. * * @param paths Path(s) of the HTTP request * @returns Method decorator */ const Post: { (path?: string | string[]): MethodDecorator; <T>(stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; <T>(path: string | string[], stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; }; /** * Encrypted router decorator function for the PATCH method. * * @param path Path of the HTTP request * @returns Method decorator */ const Patch: { (path?: string | string[]): MethodDecorator; <T>(stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; <T>(path: string | string[], stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; }; /** * Encrypted router decorator function for the PUT method. * * @param path Path of the HTTP request * @returns Method decorator */ const Put: { (path?: string | string[]): MethodDecorator; <T>(stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; <T>(path: string | string[], stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; }; /** * Encrypted router decorator function for the DELETE method. * * @param path Path of the HTTP request * @returns Method decorator */ const Delete: { (path?: string | string[]): MethodDecorator; <T>(stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; <T>(path: string | string[], stringify?: IResponseBodyStringifier<T> | null): MethodDecorator; }; /** * Set the logger function for the response validation failure. * * If you've configured the transformation option to `validate.log` in the * `tsconfig.json` file, then the error log information of the response * validation failure would be logged through this function instead of * throwing the 400 bad request error. * * By the way, be careful. If you've configured the response transformation * option to be `validate.log`, client may get wrong response data. Therefore, * this way is not recommended in the common backend server case. * * @default console.log * @param func Logger function */ function setValidateErrorLogger(func: (log: IValidateErrorLog) => void): void; export import IValidateErrorLog = TypedRoute.IValidateErrorLog; }