UNPKG

nestjs-custom-class-validators

Version:

This package contains a few custom validator I have found to be repetitive, So I made templates that handles both class-validator checks and Swagger configuration

80 lines (63 loc) 2.08 kB
class IDefaultValdationOptions { optional?: boolean = false; defaultValue?: any; description?: string = ""; } class IBaseValidationOptions extends IDefaultValdationOptions { isArray? = false; } export class ICustomOnlyDateStringOptions extends IBaseValidationOptions {} export class ICustomSwaggerOptions extends IBaseValidationOptions { type?: "boolean" | "number" | "string" | "array" | "media"; format?: "binary"; validEnum?: Object; } export class ICustomStringOptions extends IBaseValidationOptions { isUUID? = false; } export class ICustomTimeValidatorOptions extends IBaseValidationOptions {} export class ICustomPasswordValidatorOptions extends IDefaultValdationOptions {} export class ICustomNumberValidationOptions extends IBaseValidationOptions { min?: number; max?: number; } export class ICustomEnumJSONArrayValidatorOptions extends IBaseValidationOptions { validEnum?: Object; } export class ICustomEnumValidatorOptions extends ICustomEnumJSONArrayValidatorOptions { isArray?: boolean = false; } export class ICustomBooleanValidatorOptions extends IDefaultValdationOptions {} export enum MimeTypeEnum { JPG = "image/jpg", JPEG = "image/jpeg", PNG = "image/png", JFIF = "image/jfif", GIF = "image/gif", WEBP = "image/webp", MP4 = "video/mp4", "3GP" = "video/3gpp", WEBM = "video/webm", PDF = "application/pdf", MS_DOC = "application/x-cfb", MS_WORD = "application/msword", //.DOC DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", } export const ImageMimetypes: MimeTypeEnum[] = [ MimeTypeEnum.JPEG, MimeTypeEnum.JPG, MimeTypeEnum.PNG, MimeTypeEnum.JFIF, MimeTypeEnum.GIF, MimeTypeEnum.WEBP, ]; export const VideoMimetypes: MimeTypeEnum[] = [ MimeTypeEnum.MP4, MimeTypeEnum["3GP"], MimeTypeEnum.WEBM, ]; export class ICustomMediaValidationOptions extends IBaseValidationOptions { maxSizeInByte?: number = 1e10; mimetypes: MimeTypeEnum[] = []; isArray?: boolean = false; }