UNPKG

@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
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