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.

30 lines (29 loc) 966 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.serializeSchema = serializeSchema; var _types = require("@inkline/inkline/types"); var _constants = require("@inkline/inkline/constants"); function serializeSchema(schema) { const serializedSchema = {}; Object.keys(schema).forEach(key => { if (!schema.hasOwnProperty(key) || _constants.reservedValidationFields.includes(key)) { return; } const schemaField = schema[key]; if (Array.isArray(schemaField)) { serializedSchema[key] = schemaField.map(item => { if ((0, _types.isFormGroup)(item)) { return serializeSchema(item); } return item.value; }); } else if ((0, _types.isFormGroup)(schemaField)) { serializedSchema[key] = serializeSchema(schemaField); } else if ((0, _types.isFormField)(schemaField)) { serializedSchema[key] = schemaField.value; } }); return serializedSchema; }