1.1.0 • Published 6 months ago

burhan-req-validator v1.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

Custom Validator

A lightweight and customizable field validation library using Joi, inspired by Laravel's validation rules. Simplifies data validation with intuitive rule-based syntax.

Installation

npm install burhan-req-validator

Usage

const { validateFields } = require('burhan-req-validator');
const data = {
    channel_id: "12345",
    tags: ["sports", "music"],
    isActive: true
};

const rules = {
    channel_id: "required|string",
    tags: "array|items:string",
    isActive: "required|boolean"
};  
const { error } = validateFields(data, rules);
if (error) {
console.log("Validation Error:", error.details.map(detail => detail.message));
} else {
    console.log("Validation Passed!");
}

Complex Validation

const { validateFields } = require('burhan-req-validator');

const data = { 
    username: "JohnDoe", 
    age: 25, 
    tags: ["sports", "music"], 
    profile: { bio: "Hello world!" }, 
    birthDate: "1990-01-01", 
    isActive: true 
};

const rules = { 
    username: "required|string|min:3|max:20", 
    age: "required|integer|min:18", 
    tags: "array|items:string", 
    profile: "object", 
    birthDate: "required|date", 
    isActive: "required|boolean" 
};

const { error } = validateFields(data, rules);
if (error) {
    console.log("Validation Error:", error.details.map(detail => detail.message));
} else {
    console.log("Validation Passed!");
}

  

Roles

Supported rules:

  • required: Field is required.
  • string: Validates that the field is a string.
  • email: Validates that the field is a valid email address.
  • max:: Specifies the maximum length or value.
  • min:: Specifies the minimum length or value.
  • integer: Validates that the field is an integer.
  • number: Validates that the field is a number.
  • boolean: Validates that the field is a boolean (true or false).
  • date: Validates that the field is a valid date.
  • object: Validates that the field is an object.
  • array: Validates that the field is an array.
    • items:: Specifies the type of elements within the array (e.g., items:string, items:number).
  • nullable: Allows the field to be null.
  • regex:: Validates the field against a custom regular expression.