UNPKG

react-redux-formal

Version:

Form state management and building library for react and redux

36 lines (33 loc) 1.04 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = pattern; /** * Create a new pattern validator * * @param {RegExp} regex * @param {String} [message] - The message to use if validator fails. Defaults to "Value does not match pattern" * * @return {Function} */ function pattern(regex) { var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Value does not match pattern'; if (typeof regex === 'string') regex = new RegExp(regex); if (!(regex instanceof RegExp)) { throw new Error(regex + ' is not a valid RegExp'); } /** * Check if value matches given pattern * * @param {String} value - The value to validate * * @return {Promise} - Gets rejected if validator fails, resolved otherwise */ return function patternValidator(value) { return new Promise(function (resolve, reject) { if (typeof value !== 'string') return reject('Given value is not a string'); return regex.test(value) ? resolve(value) : reject(message); }); }; }