@tuoyuan/json-schema
Version:
json-schema编辑器及表单组件
40 lines (39 loc) • 1.15 kB
JavaScript
function s(e) {
if (typeof e == "string")
return e;
if (e instanceof Array) {
if (e.length === 2)
return e[0];
if (e.length === 7)
return "any";
}
}
function u(e, t) {
t && Object.keys(t).forEach((n) => {
const i = t[n], l = s(i.type);
["string", "number", "integer", "boolean"].includes(l) ? i.default != null && (e[n] = e[n] ?? i.default) : l === "array" ? e[n] || (e[n] = i.items.default || [], s(i.items.type) === "object" && (e[n].push({}), e[n].forEach((f, c) => {
u(f, i.items.properties);
}))) : l === "object" && (e[n] || (e[n] = {}, u(e[n], i.properties)));
});
}
function g(e, t) {
const n = Number(t);
isNaN(n) ? e.splice(e.length - 1, 1) : e[e.length - 1] = n;
}
function r(e, t) {
if (e === t) return !0;
if (typeof e != "object" || e === null || typeof t != "object" || t === null)
return !1;
const n = Object.keys(e), i = Object.keys(t);
if (n.length !== i.length) return !1;
for (let l of n)
if (!i.includes(l) || !r(e[l], t[l]))
return !1;
return !0;
}
export {
g as convertStringInArray,
r as deepEqual,
s as getTrueType,
u as setFormData
};