Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

simp-validate

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

node, validator, simple validator, simple-validator, nodejs validator, npm validator, simp-validator

readme

Simple Validator

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

Usage

  1. Install the module using npm:

    npm install simp-validator
  2. Import the module in your Node.js application:

    const { createValidator } = require('simp-validator');
  3. Create a schema for your data using the createValidator function:

    const schema = createValidator({
     // Define your schema here
    });
  4. Validate your data using the created schema: `javascript const data = { // Your data to be validated };

const validationResult = schema(data); console.log(validationResult);


5. 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:
```javascript
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-validator');
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."}
  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