You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

props-check

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

props-check

Check your props and give a helpful error if you've mis-typed.

0.3.2
latest
Source
npm
Version published
Weekly downloads
1
-91.67%
Maintainers
1
Weekly downloads
 
Created
Source

Build Status codecov Coverage Status Code Climate

props-check

Check your props and give a helpful error if you've mis-typed.

Installation

npm install props-check

Requiring the module

const PropsCheck = require('props-check')

PropsCheck

PropsCheck checks props against the spec and returns a map with list of possible corrections.

// Example spec
const spec = {
  read: 'Function'
, sanitize: '[Function]'
, validate: '[Function]'
, normalize: '[Function]'
};


// Example object
const test = {
  raed: () => null
, santize: [ () => null ]
, alvidate: [ () => null ]
, normalize: [ () => null ]
, format: [ () => null ]
};


const result = PropsCheck(spec, test);

result:

  { raed: [ 'read' ]
  , santize: [ 'sanitize' ]
  , alvidate: [ 'validate' ]
  , normalize: []
  , format: []
  }

PropsCheck returns null if spec and test have the exact same props.

PropsCheck.custom

PropsCheck.custom takes a custom comparator and returns a function that is similar to PropsCheck.

const comparator = (a, b) => a < b;

const result = PropsCheck.custom(comparator)(spec, test);

PropsCheck.human

PropsCheck.human accepts the same arguments as PropsCheck but returns a more helpful error message.

const result = PropsCheck.human(spec, test);

result:

    You gave me this:

      {
        raed: …,
        santize: …,
        alvidate: …,
        normalize: …
      }

    I wasn't expecting:

      { raed: …, santize: …, alvidate: … }

    You didn't give me:

      { read: …, sanitize: …, validate: … }

    Here's how to fix it:

      raed <-> read
      santize <-> sanitize
      alvidate <-> validate

    I have no idea what this mean:

      { format: …, }

PropsCheck.customHuman

PropsCheck.customHuman takes a custom message map and returns a function that is similar to PropsCheck.human.

const customMessages = {
  given: [ "This is what I got:", … ]
, unexpected: [ "Something is not right..", … ]
, missing: [ "I'm looking for this:", … ]
, conclusion: [ "I suggest the following changes:", … ]
, clueless: [ "I have no idea what these are:", … ]
};

const result = PropsCheck.customHuman(customMessages)(spec, test);

Custom messages will be used randomly if more than 1 message is provided in the list. If a property of the customMessages is misspelled or if a list is empty, default messages will be used instead.

Misc things

  • If you use PropsCheck.custom and provide your own comparator, make sure that the comparator accepts 2 arguments and returns either 0 on equal, 1 on similar, or -1 on mismatch.
  • All functions are curried. Meaning that the following:
PropsCheck(spec)(test);
PropsCheck.custom(comparator)(spec)(test);
PropsCheck.human(spec)(test);
PropsCheck.customHuman(customMessages)(spec)(test);

are the same as:

PropsCheck(spec, test);
PropsCheck.custom(comparator)(spec, test);
PropsCheck.human(spec, test);
PropsCheck.customHuman(customMessages)(spec, test);

Keywords

object

FAQs

Package last updated on 29 Jul 2016

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