Giter VIP home page Giter VIP logo

devsupporters / volder Goto Github PK

View Code? Open in Web Editor NEW
102.0 5.0 8.0 4.19 MB

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

Home Page: https://volder.vercel.app

License: Apache License 2.0

JavaScript 99.63% Shell 0.37%
testing-tools testing-tool npm object-checker validator schema schema-builder validation validation-library javascript

volder's Introduction

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.