1.2.5 • Published 2 years ago

@validify-js/core v1.2.5

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

@validify-js/core

npm version   npm downloads/month   GitHub license

installation

npm install --save @validify-js/core

please, buy me a coffe to support this package.

buy me a coffee

Table of contents

  1. Creating Schema
  2. validating an object
  3. Using with NodeJS

Creating Schema

an example of how to create a valid schema to validate an object:

// keep in mind that "type" property must be specified!!!
// for example type:Number

import { Schema } from "@validify-js/core";

export const user = new Schema({
  name: { type: String, required: false, minLength: 7 },
  email: { type: String, required: true, email: true },
  gender: { type: String, required: true },
  hobbies: {
    type: Array,
    required: true,
    minLength: 3,
    message: "3 hobbies should be selected at least!", // if you omit  the "message" field, default message will be displayed
  },
  blocked: {
    type: Boolean,
    required: false,
  },
  password: {
    type: String,
    required: true,
    pattern: /[A-Za-z0-9]{8,}/,
  },
  age: {
    type: Number,
    required: false,
    min: 18,
    max: 30,
  },
  profession: {
    type: String,
    required: true,
  },
});

Validating an object

you can validate any object by using the schema wich we created above. for example:

const user = {
  name: "Farid",
  email: "farid@example.com",
  hobbies: ["sky-diving", "soccer"],
  age: 25,
};

const { ok, data, errors } = userSchema.validate(user);

// validation will be failed. (ok --> false),
// because, a few fields are required in the above schema.

Using with NodeJS

how to use it with NodeJS ? that's amazingly easy

// best practice! create the schema as a seperate file
// and import it to keep code clean.

import { Schema } from "@validify-js/core";

const loginSchema = new Schema({
  username: {
    type: String,
    required: true,
    minLength: 5,
    maxLength: 15,
    message: "username is required!",
  },
  password: {
    type: String,
    required: true,
    pattern: /[A-Za-z0-9]{8,}/,
  },
});

// Express.js route handler

const loginHandler = (req, res, next) => {
  const { ok, data, errors } = loginSchema.validate(req.body);

  // if "ok" is true, it means req.body is valid , you are good to go!
  // "data" includes property values
  // "errors" includes the error messages of invalid fields, if exists

  try {
    if (!ok) {
      const error = new Error("validation failed");
      error.errors = errors;

      throw error;
    }

    // do some stuff, and return response.
  } catch (error) {
    next(error);
  }
};

you might not belive, however, that's pretty much it, as simple as you see

that's pretty much it, guys!


you can reach me here:


Linkedin    |    Facebook    |    Twitter    |    Instagram


please, buy me a coffe to support this package.

buy me a coffee

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago