Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

jguyon/check

Open more actions menu

Repository files navigation

@jguyon/check

@jguyon/check is a library of simple composable functions that you can use together to validate data.

Installation

npm install --save @jguyon/check

Usage

You create a validation function by composing smaller validation functions created by the utilities provided by this library.

For example:

import * as check from "@jguyon/check";

const checkName = check.chain(
  check.string(),
  check.trim(),
  check.minLength(2),
  check.maxLength(24),
);

checkName(" Jérôme  ");
// => { isOk: true, value: "Jérôme" }

checkName("J");
// => { isOk: false, error: "is too short", ... }

The validation functions that this library composes are simple functions that take the value to validate and return a valid or invalid result, so you can easily write your own:

import * as check from "@jguyon/check";

const checkLink = check.chain(check.string(), check.trim(), (value) =>
  value.startsWith("https://")
    ? check.ok(value)
    : check.error(value, "is not a secure link"),
);

checkLink("   https://example.com ");
// => { isOk: true, value: "https://example.com" }

checkLink("http://example.com");
// => { isOk: false, error: "is not a secure link", ... }

Additional arguments passed to the validation function are passed to the child validation functions:

import * as check from "@jguyon/check";

const checkPasswordConfirmation = check.chain(
  check.string(),
  (value, password) =>
    value === password
      ? check.ok(value)
      : check.error(value, "does not match password"),
);

checkPasswordConfirmation("password", "password");
// => { isOk: true, value: "password" }

checkPasswordConfirmation("invalid", "password");
// => { isOk: false, error: "does not match password", ... }

Documentation

Here is the full documentation.

About

Composable validation functions

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.