Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
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 - npm Package Compare versions

Comparing version 0.3.0 to 0.3.1

2

package.json
{
"name": "props-check",
"version": "0.3.0",
"version": "0.3.1",
"description": "Check your props and give a helpful error if you've mis-typed.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -8,1 +8,128 @@ [![Build Status](https://travis-ci.org/influentialpublishers/props-check.svg?branch=master)](https://travis-ci.org/influentialpublishers/props-check)

Check your props and give a helpful error if you've mis-typed.
## Installation
`npm install props-check`
## Requiring the module
```javascript
const PropsCheck = require('props-check')
```
## `PropsCheck`
PropsCheck checks props against the spec and returns a map with list of possible corrections.
```javascript
// Example spec
const spec = {
read: 'Function'
, sanitize: '[Function]'
, validate: '[Function]'
, normalize: '[Function]'
};
// Example object
const test = {
raed: () => null
, santize: [ () => null ]
, alvidate: [ () => null ]
, normalize: [ () => null ]
};
const result = PropsChecks(spec, test);
```
result:
```javascript
{ raed: [ 'read' ]
, santize: [ 'sanitize' ]
, alvidate: [ 'validate' ]
, normalize: []
}
```
`PropsChecks` 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.
```javascript
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.
```javascript
const result = PropsChecks.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
```
## `PropsCheck.customHuman`
`PropsCheck.customHuman` takes a custom message map and returns a function that is similar to PropsCheck.human.
```javascript
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:", … ]
};
const result = PropsChecks.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:
```javascript
PropsCheck(spec)(test);
PropsCheck.custom(comparator)(spec)(test);
PropsCheck.human(spec)(test);
PropsCheck.customHuman(customMessages)(spec)(test);
```
are the same as:
```javascript
PropsCheck(spec, test);
PropsCheck.custom(comparator)(spec, test);
PropsCheck.human(spec, test);
PropsCheck.customHuman(customMessages)(spec, test);
```
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