{"version":3,"sources":["../src/predicate.js"],"names":["predicate","fn","message","TypeError","requiredValidator","props","propName","componentName","result","validator","rest","isRequired"],"mappings":";;;;;;;AAAA;;;;AAEe,SAASA,SAAT,CAAmBC,EAAnB,EAAqC;AAAA,MAAdC,OAAc,uEAAJ,EAAI;;AAClD,MAAI,OAAOD,EAAP,KAAc,UAAlB,EAA8B;AAC5B,UAAM,IAAIE,SAAJ,CAAc,yBAAd,CAAN;AACD;;AACD,MAAI,OAAOD,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,UAAM,IAAIC,SAAJ,CAAc,0CAAd,CAAN;AACD;;AAED,WAASC,iBAAT,CAA2BC,KAA3B,EAAkCC,QAAlC,EAA4CC,aAA5C,EAA2D;AACzD,QAAMC,MAAM,GAAGP,EAAE,CAACI,KAAK,CAACC,QAAD,CAAN,CAAjB;;AACA,QAAIE,MAAJ,EAAY;AACV,aAAO,IAAP;AACD;;AACD,WAAO,IAAIL,SAAJ,YAAmBI,aAAnB,8BAAsDD,QAAtD,wCAA6FJ,OAAO,eAAQA,OAAR,IAAoB,EAAxH,OAAP;AACD;;AAED,WAASO,SAAT,CAAmBJ,KAAnB,EAA0BC,QAA1B,EAA6C;AAC3C,QAAID,KAAK,CAACC,QAAD,CAAL,IAAmB,IAAvB,EAA6B;AAC3B,aAAO,IAAP;AACD;;AAH0C,sCAANI,IAAM;AAANA,MAAAA,IAAM;AAAA;;AAI3C,WAAON,iBAAiB,MAAjB,UAAkBC,KAAlB,EAAyBC,QAAzB,SAAsCI,IAAtC,EAAP;AACD;;AACDD,EAAAA,SAAS,CAACE,UAAV,GAAuBP,iBAAvB;AAEA,SAAO,+BAAcK,SAAd,EAAyB,WAAzB,EAAsCR,EAAtC,CAAP;AACD","sourcesContent":["import wrapValidator from './helpers/wrapValidator';\n\nexport default function predicate(fn, message = '') {\n if (typeof fn !== 'function') {\n throw new TypeError('`fn` must be a function');\n }\n if (typeof message !== 'string') {\n throw new TypeError('`message`, if provided, must be a string');\n }\n\n function requiredValidator(props, propName, componentName) {\n const result = fn(props[propName]);\n if (result) {\n return null;\n }\n return new TypeError(`\\`${componentName}\\` requires that \\`${propName}\\` pass a predicate function${message ? `: ${message}` : ''}.`);\n }\n\n function validator(props, propName, ...rest) {\n if (props[propName] == null) {\n return null;\n }\n return requiredValidator(props, propName, ...rest);\n }\n validator.isRequired = requiredValidator;\n\n return wrapValidator(validator, 'predicate', fn);\n}\n"],"file":"predicate.js"}