@traveloka/prop-types

Custom prop-types used in Traveloka project for react prop validation that can't be covered using compile-time typecheck (such as Flow/Typescript)

Usage no npm install needed!

<script type="module">
  import travelokaPropTypes from 'https://cdn.skypack.dev/@traveloka/prop-types';
</script>

README

prop-types

CircleCI codecov

Custom prop-types used in Traveloka project for react prop validation that can't be covered using compile-time typecheck (such as Flow/Typescript)

API

ElementWithProps

Used to validate certain prop to equal react element with predefined props

Example:

import { ElementWithProps } from '@traveloka/prop-types';

const B = () => null;
const A = () => null;

A.propTypes = {
  b: ElementWithProps(B, { x: 'y', other: PropTypes.string })
}

// fail
<A b={<B />} />
<A b={<B x='x' />} />
<A b={<B y='x' />} />

// pass
<A b={<B x='y' />} />
<A b={<B x='y' other='any' />} />

LICENSE

MIT