1.1.1 • Published 4 years ago
better-prop-types v1.1.1
better-prop-types
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
.isOptionalButNotNulland.isRequiredButNullablemodifiers to all validators, besides the original.isRequiredone:.isOptionalButNotNullkeeps the prop as optional (acceptingundefined) but rejectsnullvalues.isRequiredmarks the prop as required but rejects bothnull&undefinedvalues.isRequiredButNullablemarks the prop as required (rejectingundefined) but acceptsnullvalues
Usage
Installation
yarn add -E better-prop-typesor:
npm i -E better-prop-typesExample
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(/* */).isRequiredButNullableBetterPropsTypes.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.
1.1.1
4 years ago
1.1.0
4 years ago
1.0.0
4 years ago
1.0.0-beta.1
4 years ago
1.0.0-alpha.6
4 years ago
1.0.0-alpha.5
4 years ago
1.0.0-alpha.4
4 years ago
1.0.0-alpha.3
4 years ago
1.0.0-alpha.2
4 years ago
1.0.0-alpha.1
4 years ago