react-hook-form
Version:
Performant, flexible and extensible forms library for React Hooks
69 lines (58 loc) • 2.11 kB
JavaScript
var appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria
? {
...errors[name],
types: {
...(errors[name] && errors[name].types ? errors[name].types : {}),
[type]: message || true,
},
}
: {};
var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
var isNullOrUndefined = (value) => value == null;
var isDateObject = (value) => value instanceof Date;
const isObjectType = (value) => typeof value === 'object';
var isObject = (value) => !isNullOrUndefined(value) &&
!Array.isArray(value) &&
isObjectType(value) &&
!isDateObject(value);
var isUndefined = (val) => val === undefined;
var get = (object, path, defaultValue) => {
if (!path || !isObject(object)) {
return defaultValue;
}
const result = compact(path.split(/[,[\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
return isUndefined(result) || result === object
? isUndefined(object[path])
? defaultValue
: object[path]
: result;
};
var isKey = (value) => /^\w*$/.test(value);
var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
var set = (object, path, value) => {
let index = -1;
const tempPath = isKey(path) ? [path] : stringToPath(path);
const length = tempPath.length;
const lastIndex = length - 1;
while (++index < length) {
const key = tempPath[index];
let newValue = value;
if (index !== lastIndex) {
const objValue = object[key];
newValue =
isObject(objValue) || Array.isArray(objValue)
? objValue
: !isNaN(+tempPath[index + 1])
? []
: {};
}
if (key === '__proto__') {
return;
}
object[key] = newValue;
object = object[key];
}
return object;
};
export { appendErrors, get, set };
//# sourceMappingURL=react-server.esm.mjs.map