1.1.0 • Published 7 years ago

form-validations v1.1.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

Build Status NPM version

Form validation in 1KB

A library that makes form validation fun again. When trying out various different form validation libraries, I didn't found one where one could easily change different rules, and customize the error messages as well.

Simple example:

import { validString } from "form-validations";

const isString = validString("not a string"); // Simple helper for custom messages

isString("hello world!"); // Returns: []. No errors means field is valid
isString(1234); // Returns: ["not a string"]

A more complex example with chained validations:

import { chain, firstError, validString } from "form-validations";

const isString = validString("not a string");

// Custom validator
function isHello(value) {
  if (!/hello/g.test(value)) {
    return "value does not contain 'hello'";
  }

  return true;
};

// Collect all errors
const validate = chain(isString, isHello);

validate("hello world!"); // Returns: []. No errors means field is valid
validate(1234); // Returns: ["not a string", "value does not contain 'hello'"]

// Stop on first error
const validate = firstError(isString, isHello);
validate(1234); // Returns: ["not a string"]

This library was built to allow easy chaining of validations.

API

chain(...validators): string[]

Easily chain validators together. Each validator can push an error message to the resulting array.

firstError(...validators): string[]

Contrary to chain this function will stop at the first validator that returns an error. The resulting string array will always have a length of 1.

Available validations

Each validation function must return either true or an error message of type string.

ValidationCheck if
validString...value is a string
validNumber...value is a number
validBool...value is a boolean
validDateFormat...value has format: YYYY-MM-DD
validDateTimeFormat...value has format: YYYY-MM-DD hh:mm:ss
validDateUTCFormat...value has format YYYY-MM-DDThh:mm:ssZ
oneOf...value is inside the specified array
required...value is not empty, undefined or null

Available normalizers

Often you need to normalize data when dealing with form elements.

import { normalizeBoolean } from "form-validations";

normalizeBoolean("false"); // returns false;
normalizeBoolean(1); // returns true;
normalizeBoolean([]); // returns false;
Normalizedescription
normalizeBooleanReturns a boolean

LICENSE

MIT, see LICENSE.md

1.1.0

7 years ago

1.0.0

7 years ago