Socket
Socket
Sign inDemoInstall

better-prop-types

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

better-prop-types

Better PropTypes.


Version published
Weekly downloads
15
increased by150%
Maintainers
1
Weekly downloads
 
Created
Source

better-prop-types

License CI Status Code Coverage NPM Version

better-prop-types is a wrapper for the original prop-types library adding a few more validators and modifiers to accurately handle null and undefined values (which shouldn't be considered similar!).

The code is fully test-covered and actively used in production. It also provides accurate Typescript declarations.

The library includes the original prop-types as a dependency.

And that's important to note that better-prop-types is only bundled as a full JavaScript module (ESM).

Features

  • Add .isOptionalButNotNull and .isRequiredButNullable modifiers to all validators, besides the original .isRequired one:
    • .isOptionalButNotNull keeps the prop as optional (accepting undefined) but rejects null values
    • .isRequired marks the prop as required but rejects both null & undefined values
    • .isRequiredButNullable marks the prop as required (rejecting undefined) but accepts null values

Usage

Installation

yarn add -E better-prop-types

or:

npm i -E better-prop-types

Example

import BetterPropTypes from 'better-prop-types'

export const MyComponent = ({
  anOptionalButNonNullStringProp = 'A default string',
  aRequiredAndNonNullableBooleanProp,
  aRequiredButNullableNumberProp,
}) => (
  // ...
)

MyComponent.propTypes = {
  anOptionalButNonNullStringProp: BetterPropTypes.string.isOptionalButNotNull,
  aRequiredAndNonNullableBooleanProp: BetterPropTypes.bool.isRequired,
  aRequiredButNullableNumberProp: BetterPropTypes.number.isRequiredButNullable,
}

You can also use them with all the functional validators:

  • BetterPropsTypes.objectOf(/* */).isRequiredButNullable
  • BetterPropsTypes.shape(/* */).isOptionalButNotNull
  • etc

Roadmap

  • Integrate some prop-types-extra extra types:
    • all(...validators) => BetterPropsTypes.all(...validators)
    • deprecated(validator, reason) => BetterPropsTypes.isDeprecated(validator, reason)
    • isRequiredForA11y(validator) => BetterPropsTypes.string.isRequiredForA11y
  • Improve original error messages for arrays validated via functional validators with explicit property naming.

FAQs

Package last updated on 25 Jan 2022

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