105 lines
2.6 KiB
TypeScript
105 lines
2.6 KiB
TypeScript
// Metro module 1412 (f1413).
|
|
import Module1413, { TypeTag } from "../_bundle/Module1413";
|
|
import Module38 from "../_bundle/Module38";
|
|
import { areSetsEqual } from "../_bundle/Module1414";
|
|
import shallowEqual, { areArraysShallowEqual } from "../_bundle/shallowEqual";
|
|
let isPlainRecordDataEqual;
|
|
const isValueEqual = function isValueEqual(a0, a1) {
|
|
let r1;
|
|
L22: {
|
|
if (a0 != null && a1 != null) {
|
|
r1 = a0 === a1;
|
|
if (r1) {
|
|
break L22;
|
|
}
|
|
r1 = a0 instanceof Date && a1 instanceof Date ? a0.getTime() === a1.getTime() : a0 instanceof Set && a1 instanceof Set ? areSetsEqual(a0, a1) : Array.isArray(a0) && Array.isArray(a1) ? areArraysShallowEqual(a0, a1) : (typeof a0 === "object" ? typeof a1 === "object" : typeof a0 === "object") && shallowEqual(a0, a1);
|
|
} else {
|
|
r1 = a0 === a1;
|
|
}
|
|
}
|
|
return r1;
|
|
};
|
|
isPlainRecordDataEqual = function isPlainRecordDataEqual(a0, a1) {
|
|
if (a0 === a1) {
|
|
return true;
|
|
}
|
|
for (const item of Object.keys(a0)) {
|
|
if (isValueEqual(a0[item], a1[item])) {
|
|
continue;
|
|
}
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
export default Module1413;
|
|
export { TypeTag };
|
|
export function set(a0, a1, a2) {
|
|
const isValueEqual2 = isValueEqual(a0[a1], a2);
|
|
let r10 = a0;
|
|
if (!isValueEqual2) {
|
|
const r11 = {
|
|
...a0
|
|
};
|
|
r11[a1] = a2;
|
|
r10 = r11;
|
|
}
|
|
return r10;
|
|
}
|
|
export function merge(a0, a1) {
|
|
let r12;
|
|
let r4 = a0;
|
|
let r6 = null;
|
|
let r5 = null;
|
|
for (const key in a1) {
|
|
r12 = r6;
|
|
r5 = r12;
|
|
const r17 = a0[key];
|
|
const r14 = a1[key];
|
|
const r13 = r14 === void 0 || isValueEqual(r17, r14);
|
|
r6 = r12;
|
|
if (!r13) {
|
|
if (r12 == null) {
|
|
const r20 = {
|
|
...a0
|
|
};
|
|
r20[key] = r14;
|
|
r12 = r20;
|
|
} else {
|
|
r12[key] = r14;
|
|
}
|
|
r6 = r12;
|
|
}
|
|
}
|
|
r12 = r6;
|
|
r5 = r12;
|
|
if (r5 != null) {
|
|
r4 = r5;
|
|
}
|
|
return r4;
|
|
}
|
|
export function tryReuseExistingInPlacePlainRecord(a0, a1, a2) {
|
|
let r4 = a1;
|
|
Module38(a1 == null || a1[TypeTag] === a0, "Existing record type does not match the expected type");
|
|
if (!(a1 != null && isPlainRecordDataEqual(a1, a2))) {
|
|
a2[TypeTag] = a0;
|
|
r4 = a2;
|
|
}
|
|
return r4;
|
|
}
|
|
export function objectIsPlainRecordOfType(a0, a1) {
|
|
return (typeof a1 === "object" ? a1 != null : typeof a1 === "object") && (TypeTag in a1 && a1[TypeTag]) === a0;
|
|
}
|
|
export function constructInPlace(a0, a1) {
|
|
a1[TypeTag] = a0;
|
|
return a1;
|
|
}
|
|
export function copyConstruct(a0, a1) {
|
|
const r0 = {
|
|
...a1
|
|
};
|
|
r0[TypeTag] = a0;
|
|
return r0;
|
|
}
|
|
export { isValueEqual };
|
|
export { isPlainRecordDataEqual };
|