export const domain = makeChainable((props, propName, componentName) => { const error = PropTypes.array(props, propName, componentName); if (error) { return error; } const value = props[propName]; if (value.length !== 2 || value[1] === value[0]) { return new Error( `\`${propName}\` in \`${componentName}\` must be an array of two unique numeric values.` ); } });
export const homogeneousArray = makeChainable((props, propName, componentName) => { const error = PropTypes.array(props, propName, componentName); if (error) { return error; } const value = props[propName]; if (value.length > 1) { const constructor = getConstructor(value[0]); for (let i = 1; i < value.length; i++) { const otherConstructor = getConstructor(value[i]); if (constructor !== otherConstructor) { const constructorName = getConstructorName(value[0]); const otherConstructorName = getConstructorName(value[i]); return new Error( `Expected \`${propName}\` in \`${componentName}\` to be a ` + `homogeneous array, but found types \`${constructorName}\` and ` + `\`${otherConstructorName}\`.` ); } } } });