Skip to content

Simple and lightweight Node.js module for fast and customizable data validation. Define flexible schemas to ensure your data meets specific criteria effortlessly.

Notifications You must be signed in to change notification settings

Artemiy-Zarubin/simple-validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

Simple Validator (Node.js)

A simple and fast Node.js module for validating incoming data against specified schemas.

Usage

  1. Install the module using npm:
npm install simp-validate
  1. Import the module in your Node.js application:
const { createValidator } = require('simp-validate');
  1. Create a schema for your data using the createValidator function:
const schema = createValidator({
    // Define your schema here
});
  1. Validate your data using the created schema:
const data = {
    // Your data to be validated
};

const validationResult = schema(data);
console.log(validationResult);
  1. The validationResult will be an object with { match: true } if the data matches the schema or { match: false, error: ... } if there is a validation error.

Schema Definition

Define your schema using the following structure:

const schema = createValidator({
    fieldName: { type: 'String', required: true, minLength: 3, maxLength: 10 },
    // Add more fields and their validation rules as needed
});

Available types: 'String', 'Number', 'Enum', 'Array', 'Double'.

Example

const { createValidator } = require('simp-validate');
const postSchema = createValidator({
    author: { type: 'String', required: true, minLength: 5, maxLength: 24 },
    comments: {
        type: 'Array',
        required: true,
        itemValidator: (item) => createValidator({
            user: { type: 'String', required: true },
            text: { type: 'String' },
        })(item),
    },
    private: { type: 'Enum', enum: ['yes', 'no'] },
    postId: { type: 'Number', required: true },
    availableAges: { type: 'Number', min: 0, max: 90, required: true },
});

const post = { // It's a perfect match!
    author: 'Zarubin',
    comments: [{user: "User №1", text: "cool"},{user: "User №2", text: "hey"}],
    private: 'yes',
    postId: 390,
    availableAges: 29
};
const post2 = { // Mismatch
    author: 49231, // need String
    comments: [{user: "User №1", text: ""},{user: "User №2", text: "hey"}], // text can be null
    private: 'yes',
    // no postId
    availableAges: 91 // max 90
};
const result = postSchema(post);
console.log(result); // returns: {match: true}
const result2 = postSchema(post2);
console.log(result2); // returns {match: false,error: "Field 'author' has an invalid type. Expected a string."}

Links

  1. Telegram chat: Visit our chat - here you can get help.
  2. Telegram channel of the studio: ZA Development Studio
  3. Find the creator in telegram: @ArtemiyZarubin

About

Simple and lightweight Node.js module for fast and customizable data validation. Define flexible schemas to ensure your data meets specific criteria effortlessly.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published