You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
JavaScript
66 lines
2.0 KiB
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])
|
|
? []
|
|
: {};
|
|
}
|
|
object[key] = newValue;
|
|
object = object[key];
|
|
}
|
|
return object;
|
|
};
|
|
|
|
export { appendErrors, get, set };
|
|
//# sourceMappingURL=react-server.esm.mjs.map
|