All Projects → devSupporters → volder

devSupporters / volder

Licence: Apache-2.0 license
volder is powerful Object schema validation lets you describe your data using a simple and readable schema and transform a value to match the requirements

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to volder

PixelTest
Fast, modern, simple iOS snapshot testing written purely in Swift.
Stars: ✭ 56 (-47.17%)
Mutual labels:  testing-tools, testing-tool
Password Validator
Validates password according to flexible and intuitive specification
Stars: ✭ 224 (+111.32%)
Mutual labels:  schema, validation-library
Schema Typed
Schema for data modeling & validation
Stars: ✭ 150 (+41.51%)
Mutual labels:  schema, validator
Fastest Validator
⚡️ The fastest JS validator library for NodeJS
Stars: ✭ 923 (+770.75%)
Mutual labels:  schema, validator
garn-validator
Create validations with ease
Stars: ✭ 42 (-60.38%)
Mutual labels:  schema, validator
Structured Acceptance Test
An open format definition for static analysis tools
Stars: ✭ 10 (-90.57%)
Mutual labels:  schema, testing-tools
Joiful
TypeScript Declarative Validation for Joi
Stars: ✭ 177 (+66.98%)
Mutual labels:  schema, validator
Vee Validate
✅ Form Validation for Vue.js
Stars: ✭ 8,820 (+8220.75%)
Mutual labels:  validator, validation-library
cron-validate
A cron-expression validator for TypeScript/JavaScript projects.
Stars: ✭ 40 (-62.26%)
Mutual labels:  validator, validation-library
reach-schema
Functional schema-driven JavaScript object validation library.
Stars: ✭ 34 (-67.92%)
Mutual labels:  schema, validation-library
Pandera
A light-weight, flexible, and expressive pandas data validation library
Stars: ✭ 506 (+377.36%)
Mutual labels:  schema, testing-tools
FilterInputJs
Tiny and Powerful Library for limit an entry (text box,input) as number,string or more...
Stars: ✭ 37 (-65.09%)
Mutual labels:  validator, validation-library
ty
Here is a schema checker which can return well typed results. Tell your friends!
Stars: ✭ 21 (-80.19%)
Mutual labels:  schema, validator
Awesome Python Models
A curated list of awesome Python libraries, which implement models, schemas, serializers/deserializers, ODM's/ORM's, Active Records or similar patterns.
Stars: ✭ 124 (+16.98%)
Mutual labels:  schema, validator
Validot
Validot is a performance-first, compact library for advanced model validation. Using a simple declarative fluent interface, it efficiently handles classes, structs, nested members, collections, nullables, plus any relation or combination of them. It also supports translations, custom logic extensions with tests, and DI containers.
Stars: ✭ 198 (+86.79%)
Mutual labels:  validator, validation-library
Schema Utils
Options Validation
Stars: ✭ 162 (+52.83%)
Mutual labels:  schema, validator
vayder
Easy and concise validations for Express routes
Stars: ✭ 26 (-75.47%)
Mutual labels:  validator, validation-library
thai-citizen-id-validator
🦉 Validate Thai Citizen ID with 0 dependencies 🇹🇭
Stars: ✭ 35 (-66.98%)
Mutual labels:  validator, validation-library
another-json-schema
Another JSON Schema validator, simple & flexible & intuitive.
Stars: ✭ 48 (-54.72%)
Mutual labels:  schema, validator
ATGValidator
iOS validation framework with form validation support
Stars: ✭ 51 (-51.89%)
Mutual labels:  validator, validation-library

Codecov Coverage Package Size Downloads Version License Gitter CI GitHub followers

"Buy Me A Coffee" DevSupporters discord server volder - schema builder and data validation for javascript | Product Hunt

volder is powerful Object schema validation, it lets you describe your data using a simple and readable schema and transform a value to match the requirements, it has custom error messages, custom types and nested schemas.

Installation

$ npm install --save volder
$ yarn add volder

visit volder.vercel.app for API, documentation, and contributing.

Table of Contents

Usage

You define and create volder schema object. Schema objects are immutable, so each validate call returns a new schema object.

import { Volder } from 'volder';

const personSchema = new Volder({
  name:{ type: String, required: true, maxLength: 10, trim: true },
  age: { type: Number, min: 18, sign: 'positive' }
})

const { valid, errors, value } = personSchema.validate({name: "max  ", age: 19});
// { valid: true, errors: {}, value: {name: "max", age: 19}}

Example

let's took one example using volder for login validation.

import { Volder, Email } from "volder";

// initialize using Volder constructor.
const userSchema = new Volder({
  username: {
    type: String,
    maxLength: 10,
    // use Custom Error Message feature.
    minLength: [4, "username should be at least 4 characters"],
    default: "guest user",
  },
  email: {
    // Email type imported for volder package, there are other types like UUID.
    type: [Email, "is not valid email"],
    trim: true,
    required: true,
  },
  // you can just Enter the type.
  birth_day: Date,
  password: {
    type: String,
    matches: /^[a-zA-Z0-9]{3,30}$/,
    // pattern config run and return true if value valid otherwise false.
    pattern: [(input) => input.includes("_"), "underscore not included"],
  },
});

const validInput = {
  user: "max123",
  email: "   [email protected]    ",
  birth_day: "1/2/2010",
  password: "new_Password123",
};

const { valid, errors, value } = userSchema.validate(validInput);
// { valid: true, errors: {}, value: {...validInput, email:"[email protected]"}}

const invalidInput = {
  user: "1",
  email: "test@gmail",
  birth_day: "2010",
  password: "newPassword123",
};

const { valid, errors, value } = userSchema.validate(invalidInput);
// {
//  valid: false,
//  errors: {
//     user: "username should be at least 4 characters"
//     email: "is not valid email",
//     password: "underscore not included",
//     birth_day: "birth_day is not valid date, date should be in 'mm/dd/yyyy' format"
// },
//  value: {}
//}

more example:

Contributing

I appreciate to contributing in this repository.(go throw the guild lines)

📝 License

Copyright © 2021 salah alhashmi.
This project is GPL-3.0 licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].