react-proforma
Version:
React Proforma helps you build simple to complex web forms with ease in React. -- Simplicity where you want it. Flexibility where you need it.
43 lines (42 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function generateStateObject(initState) {
var keys = Object.keys(initState);
var stateObj = keys.reduce(function (result, key) {
if (typeof initState[key] === 'boolean' ||
typeof initState[key] === 'string') {
result.values[key] = initState[key];
}
else {
result.values[key] = '';
}
result.touched[key] = false;
result.errors[key] = null;
return result;
}, {
values: {},
touched: {},
errors: {},
isSubmitting: false,
isComplete: false,
submitCount: 0
});
return stateObj;
}
exports.generateStateObject = generateStateObject;
function validator(name, values, validationObject) {
var errors = validationObject[name](values);
if (Array.isArray(errors)) {
for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {
var error = errors_1[_i];
if (typeof error !== 'string') {
throw new Error("The validation object for field with name " + name + " returned an array that contains a non-string value. The returned array of errors must contain only strings.");
}
}
}
else if (typeof errors === undefined || typeof errors === null) {
return null;
}
return errors;
}
exports.validator = validator;