Security News
Bun 1.2 Released with 90% Node.js Compatibility and Built-in S3 Object Support
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
props-check
Advanced tools
Check your props and give a helpful error if you've mis-typed.
npm install props-check
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.
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.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);
FAQs
Check your props and give a helpful error if you've mis-typed.
We found that props-check demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.