simp-validate
v1.0.0
Published
Simple and lightweight Node.js module for fast and customizable data validation. Define flexible schemas to ensure your data meets specific criteria effortlessly.
Downloads
6
Maintainers
Readme
Simple Validator
A simple and fast Node.js module for validating incoming data against specified schemas.
Usage
- Install the module using npm:
npm install simp-validator
- Import the module in your Node.js application:
const { createValidator } = require('simp-validator');
- Create a schema for your data using the createValidator function:
const schema = createValidator({
// Define your schema here
});
- Validate your data using the created schema:
const data = {
// Your data to be validated
};
const validationResult = schema(data);
console.log(validationResult);
- 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-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."}
Links
- Telegram chat: Visit our chat - here you can get help.
- Telegram channel of the studio: ZA Development Studio
- Find the creator in telegram: @ArtemiyZarubin