UNPKG

@inkline/inkline

Version:

Inkline is the intuitive UI Components library that gives you a developer-friendly foundation for building high-quality, accessible, and customizable Vue.js 3 Design Systems.

26 lines (25 loc) 812 B
import { createFormFieldSchema } from "@inkline/inkline/validation"; import { defaultValidationStateValues } from "@inkline/inkline/constants"; export function createSchemaFromDefaults(defaultValues) { const resolved = { ...defaultValidationStateValues }; for (const key of Object.keys(defaultValues)) { const field = defaultValues[key]; if (Array.isArray(field)) { resolved[key] = field.map((item) => { if (typeof item === "object") { return createSchemaFromDefaults(item); } return createFormFieldSchema({ value: item }); }); } else if (typeof field === "object") { resolved[key] = createSchemaFromDefaults(field); } else { resolved[key] = createFormFieldSchema({ value: field }); } } return resolved; }