2.0.3 • Published 2 years ago

volder v2.0.3

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
2 years ago

Codecov Coverage Package Size Downloads Version License Gitter CI

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: "   test@gmail.test    ",
  birth_day: "1/2/2010",
  password: "new_Password123",
};

const { valid, errors, value } = userSchema.validate(validInput);
// { valid: true, errors: {}, value: {...validInput, email:"test@gmail.test"}}

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)

"Buy Me A Coffee"

📝 License

Copyright © 2021 salah alhashmi. This project is MIT licensed.

2.0.3

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.1.3

3 years ago

1.3.0

3 years ago

1.2.1

3 years ago

1.1.2

3 years ago

1.0.1

3 years ago

1.1.1

3 years ago