npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

credentials-validator

v1.2.2

Published

A simple credential validator

Downloads

14

Readme

Credentials Validator

npm Build Status

A quick way to validate credentials in server-side

How to install

  1. Run npm install
npm install credentials-validator
  1. Write the following code:
const validator = require("credentials-validator");

user = {
  name: "AnnieCare1010",
  email: "[email protected]",
  password: "Password10"
};

validator.validate(user, function(errors) {
  console.table(errors);
});

You will notice that will produce no errors. But what happens if we change the password to "Pass", which has only 4 characters?

  password: "Pass"

It will produce...

┌─────────┬────────────────────────────────────────────────────┐
│ (index) │                       Values                       │
├─────────┼────────────────────────────────────────────────────┤
│    0    │ 'Password too short, max length: 8'                │
└─────────┴────────────────────────────────────────────────────┘

Voila! it produced an error.

Settings

Here is the available settings:

var settings = {
  nameMin: 5,
  nameMax: 15,
  passwordMin: 8,
  passwordMax: 20,
  passwordMustContainUpper: false,
  passwordMustContainNumber: false,
  passwordSpecialCharactersPermit: false
};

And you can change the settings using the setSettings() method

const validator = require("credentials-validator");

const newSettings = {
  nameMin: 10,
  nameMax: 25,
  passwordMustContainUpper: false
};

validator.setSettings(newSettings);

Custom error messages

You can set custom error messages.

user = {
  name: "AnnieCare1010",
  email: "[email protected]",
  password: "Password10"
};

const errorMessages = {
  errorPasswordMin: "Senha curta, tamanho máximo: __VALUE__"
  //__VALUE__ gets replaced by the current value, which is password min length in this case
};

validator.validate(user, function(errors) {
  console.table(errors);
});
validator.setErrorMessages(errorMessages);

It will print...

┌─────────┬──────────────────────────────────┐
│ (index) │              Values              │
├─────────┼──────────────────────────────────┤
│    0    │ 'Senha curta, tamanho máximo: 8' │
└─────────┴──────────────────────────────────┘

Other things you must know

Invidual check methods for name, email and password


//A method that individually checks a name
validator.checkName("JohnDoe" ,function(errs) {
  console.log(errs);
});
//A method that individually checks an email
validator.checkEmail("[email protected]",function(errs) {
  console.log(errs);
});
//A method that individually checks an email
validator.checkEmail("Password10",function(errs) {
  console.log(errs);
});

Check for custom credential

Example:

const customCredential = "AyeMate"

settings = {
  min: 10,
  max: 20
};
/*
Check out the full settings in next code sample
*/

errorMessages = {
  errorMin: "__NAME__ is low! Min length: __VALUE__"
};
/*
__NAME__ gets replaced by the credential name,
check out the full error message in the next code sample
*/

//checkCustom(credential, name, callback, customSettings, customErrorMessages);
validator.checkCustom(
  customCredential,
  "Custom credential",
  function(errs) {
    errors.push(errs);
  },
  settings,
  errorMessages
);

Full custom settings and error messages

let cSettings = {
    min: 0,
    max: 0,
    mustContainWord: [],
    mustContainUpper: false,
    mustContainNumber: false,
    specialCharactersPermit: true
};
let cErrorMessages = {
    errorEmpty: "Empty __NAME__!",
    errorMin: "__NAME__ too short, min length: __VALUE__",
    errorMax: "__NAME__ too long, max length: __VALUE__",
    errorWord: "__NAME__ should contain this word: __VALUE__",
    errorUpper: "__NAME__ should contain at last 1 uppercase!",
    errorNumber: "__NAME__ should contain at last 1 number!",
    errorSpecialFalse: "Forbidden characters in __NAME__",
    errorSpecialTrue: "__NAME__ should contain at last 1 special characters!"
};