Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

handcuffs

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

handcuffs

Async validation library for node and browser

  • 0.6.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5
increased by66.67%
Maintainers
1
Weekly downloads
 
Created
Source

Handcuffs

Build Status Coverage

Async validation library for node and browser.

Installation

Install using npm or yarn:

npm install handcuffs
# or
yarn add handcuffs

Usage

Basic usage example:

import { rules, validate } from 'handcuffs'

const data = {
  name: 'Jack',
  wife: {
    name: 'Susan'
  }
}

const dataRules = {
  name: [rules.required(), rules.string()],
  'wife.age': [rules.required(), rules.numeric()],
  pets: [rules.required(), rules.array()],
  'pets.*.type': [rules.required(), rules.string()]
}


async function start() {
  try {
    const validationResult = await validate(data, dataRules)

    if (!validationResult.valid) {
      console.log(validationResult.errors)
    }
  } catch (e) {
    console.log('Unable to validate', e)
  }
}

start()

Note: This library is written using ES6, in order to use it in your project it is advised to transpile it to your environment. The easiest way to do this is by using Babel with @babel/preset-env.

Rules

accepted

{ rules: [rules.accepted()] }

The field under validation must be 'yes', 'on', 1, or true.

alpha

{ name: [rules.alpha()] }

The field under validation must be entirely alphabetic characters.

alphaNum

{ password: [rules.alphaNum()] }

The field under validation must be entirely alpha-numeric characters.

alphaNumDash

{ url: [rules.alphaNumDash()] }

The field under validation may have alpha-numeric characters, as well as dashes and underscores.

array

{ permissions: [rules.array()] }

The field under validation must be an array.

between

{ guests: [rules.between(1, 3)] }

The field under validation must have a size between the given min and max values.

boolean

{ isVisible: [rules.boolean()] }

The field under validation must be a boolean. Accepted input values are true and false.

email

{ email: [rules.email()] }

The field under validation must be formatted as an e-mail address.

max

{ password: [rules.max(10)] }

The field under validation must be less than or equal to the given max value.

min

{ password: [rules.min(6)] }

The field under validation must be greater than or equal to the given min value.

numeric

{ age: [rules.numeric()] }

The field under validation must be numeric.

required

{ name: [rules.required()] }

The field under validation must be present in the input data and not empty.

slug

{ slug: [rules.slug()] }

The field under validation may have lowercase alpha-numeric characters and dashes.

string

{ name: [rules.string()] }

The field under validation must be a string.

License

MIT

Keywords

FAQs

Package last updated on 25 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc