react-hook-core
Version:
278 lines (277 loc) • 6.52 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true })
function clone(obj) {
if (!obj) {
return obj
}
if (obj instanceof Date) {
return new Date(obj.getTime())
}
if (typeof obj !== "object") {
return obj
}
if (Array.isArray(obj)) {
var arr = []
for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
var sub = obj_1[_i]
var c = clone(sub)
arr.push(c)
}
return arr
}
var x = {}
var keys = Object.keys(obj)
for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) {
var k = keys_1[_a]
var v = obj[k]
if (v instanceof Date) {
x[k] = new Date(v.getTime())
} else {
switch (typeof v) {
case "object":
x[k] = clone(v)
break
default:
x[k] = v
break
}
}
}
return x
}
exports.clone = clone
function isEmptyObject(obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
return false
}
}
return true
}
exports.isEmptyObject = isEmptyObject
function diff(obj1, obj2) {
var fields = []
var key1s = Object.keys(obj1)
for (var _i = 0, key1s_1 = key1s; _i < key1s_1.length; _i++) {
var k = key1s_1[_i]
var v1 = obj1[k]
var v2 = obj2[k]
if (v1 == null) {
if (v2 != null) {
fields.push(k)
}
} else {
if (typeof v1 !== "object") {
if (v1 !== v2) {
fields.push(k)
}
} else {
var e = equal(v1, v2)
if (!e) {
fields.push(k)
}
}
}
}
var key2s = Object.keys(obj2)
var ni = notIn(key1s, key2s)
for (var _a = 0, ni_1 = ni; _a < ni_1.length; _a++) {
var n = ni_1[_a]
fields.push(n)
}
return fields
}
exports.diff = diff
function makeDiff(o1, o2, keys, version) {
var obj1 = o1
var obj2 = o2
var obj3 = {}
var s = diff(obj1, obj2)
if (s.length === 0) {
return obj3
}
for (var _i = 0, s_1 = s; _i < s_1.length; _i++) {
var d = s_1[_i]
obj3[d] = obj2[d]
}
if (keys && keys.length > 0) {
for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {
var x = keys_2[_a]
if (x.length > 0) {
obj3[x] = obj1[x]
}
}
}
if (version && version.length > 0) {
obj3[version] = obj1[version]
}
return obj3
}
exports.makeDiff = makeDiff
function hasDiff(o1, o2, keys, version) {
var diff = makeDiff(o1, o2, keys, version)
return !isEmptyObject(diff)
}
exports.hasDiff = hasDiff
function notIn(s1, s2) {
var r = []
for (var _i = 0, s2_1 = s2; _i < s2_1.length; _i++) {
var s = s2_1[_i]
if (s1.indexOf(s) < 0) {
r.push(s)
}
}
return r
}
exports.notIn = notIn
function equal(obj1, obj2) {
if (obj1 == null && obj2 == null) {
return true
}
if (obj1 == null || obj2 == null) {
return false
}
if (typeof obj1 !== typeof obj2) {
return false
}
if (typeof obj1 !== "object") {
return obj1 === obj2
}
if (obj1 instanceof Date) {
if (!(obj2 instanceof Date)) {
return false
}
return obj1.getTime() === obj2.getTime()
}
if ((Array.isArray(obj1) && !Array.isArray(obj2)) || (!Array.isArray(obj1) && Array.isArray(obj2))) {
return false
}
if (!Array.isArray(obj1) && !Array.isArray(obj2)) {
var key1s = Object.keys(obj1)
var key2s = Object.keys(obj2)
if (key1s.length !== key2s.length) {
return false
}
for (var _i = 0, key1s_2 = key1s; _i < key1s_2.length; _i++) {
var k = key1s_2[_i]
var v = obj1[k]
if (typeof v !== "object") {
if (v !== obj2[k]) {
return false
}
} else {
var e = equal(v, obj2[k])
if (e === false) {
return false
}
}
}
return true
}
return equalArrays(obj1, obj2)
}
exports.equal = equal
function equalArrays(ar1, ar2) {
if (ar1 == null && ar2 == null) {
return true
}
if (ar1 == null || ar2 == null) {
return false
}
if (ar1.length !== ar2.length) {
return false
}
for (var i = 0; i < ar1.length; i++) {
var e = equal(ar1[i], ar2[i])
if (e === false) {
return false
}
}
return true
}
exports.equalArrays = equalArrays
function getArray(list, name, v) {
var arrs = []
if (list) {
for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
var obj = list_1[_i]
if (obj[name] === v) {
arrs.push(obj)
}
}
}
return arrs
}
exports.getArray = getArray
function getDiffArray(list, name, v) {
var arrs = []
if (list) {
for (var _i = 0, list_2 = list; _i < list_2.length; _i++) {
var obj = list_2[_i]
if (obj[name] !== true) {
arrs.push(obj)
}
}
}
return arrs
}
exports.getDiffArray = getDiffArray
function setAll(list, name, v) {
if (list) {
for (var _i = 0, list_3 = list; _i < list_3.length; _i++) {
var obj = list_3[_i]
obj[name] = v
}
}
}
exports.setAll = setAll
function equalAll(list, name, v) {
if (list) {
for (var _i = 0, list_4 = list; _i < list_4.length; _i++) {
var obj = list_4[_i]
if (obj[name] !== v) {
return false
}
}
}
return true
}
exports.equalAll = equalAll
function getDirectValue(obj, key) {
if (obj && obj.hasOwnProperty(key)) {
return obj[key]
}
return null
}
exports.getDirectValue = getDirectValue
function setValue(obj, key, value) {
var replaceKey = key.replace(/\[/g, ".[").replace(/\.\./g, ".")
if (replaceKey.indexOf(".") === 0) {
replaceKey = replaceKey.slice(1, replaceKey.length)
}
var keys = replaceKey.split(".")
var firstKey = keys.shift()
if (!firstKey) {
return
}
var isArrayKey = /\[([0-9]+)\]/.test(firstKey)
if (keys.length > 0) {
var firstKeyValue = obj[firstKey] || {}
var returnValue = setValue(firstKeyValue, keys.join("."), value)
return setKey(obj, isArrayKey, firstKey, returnValue)
}
return setKey(obj, isArrayKey, firstKey, value)
}
exports.setValue = setValue
var setKey = function (_object, _isArrayKey, _key, _nextValue) {
if (_isArrayKey) {
if (_object.length > _key) {
_object[_key] = _nextValue
} else {
_object.push(_nextValue)
}
} else {
_object[_key] = _nextValue
}
return _object
}