@react-form-builder/core
Version:
React JSON Schema Form Builder to create complex, validated, reusable forms with no deep React knowledge required
114 lines (113 loc) • 2.44 kB
JavaScript
import { isString as y } from "../../../utils/isString.js";
import { isNull as l, isUndefined as $, isObject as g, isNumber as j, isBoolean as N, isDate as f } from "../../../utils/tools.js";
const n = (e) => e, t = (e) => {
throw new Error(`Cannot convert from '${e}'`);
}, S = (e) => JSON.parse(e), b = (e) => {
try {
const r = JSON.parse(e);
return g(r) ? r : e;
} catch (r) {
return console.warn(r), e;
}
}, i = (e) => JSON.stringify(e), c = (e) => e.toString(), a = (e) => (r) => r instanceof e ? r : t(r), w = (e) => {
if (e === "") return;
const r = Number(e);
return isNaN(r) && t(e), r;
}, m = (e) => new Date(e), u = (e) => e > 9 ? `${e}` : `0${e}`, h = (e) => {
const r = u(e.getHours()), o = u(e.getMinutes()), s = u(e.getSeconds());
return `${r}:${o}:${s}`;
}, p = {
string: {
string: n,
number: w,
boolean: (e) => e === "true",
object: b,
array: S,
enum: n,
date: m,
time: n
},
number: {
string: c,
number: n,
boolean: (e) => e === 1,
object: b,
array: t,
enum: n,
date: m,
time: c
},
boolean: {
string: c,
number: (e) => e ? 1 : 0,
boolean: n,
object: t,
array: t,
enum: n,
date: t,
time: t
},
object: {
string: i,
number: t,
boolean: t,
object: n,
array: t,
enum: n,
date: t,
time: t
},
array: {
string: i,
number: t,
boolean: t,
object: t,
array: n,
enum: n,
date: t,
time: t
},
enum: {
string: i,
number: a(Number),
boolean: a(Boolean),
object: a(Object),
array: a(Array),
enum: n,
date: a(Date),
time: i
},
date: {
string: c,
number: (e) => e.getTime(),
boolean: t,
object: t,
array: t,
enum: n,
date: n,
time: h
},
time: {
string: n,
number: t,
boolean: t,
object: t,
array: t,
enum: n,
date: t,
time: n
}
}, O = (e) => y(e) ? "string" : j(e) ? "number" : N(e) ? "boolean" : f(e) ? "date" : Array.isArray(e) ? "array" : g(e) ? "object" : "enum", T = (e, r) => {
if (l(e) || $(e)) return;
const o = O(e), s = p[o]?.[r];
if (!s) throw new Error(`Cannot convert ${e} from '${o}' to '${r}'`);
try {
return s(e);
} catch (d) {
throw new Error(`Cannot convert ${e} from '${o}' to '${r}'. ${d}.`);
}
};
export {
T as autoConvertField
};
//# sourceMappingURL=autoConvertField.js.map