UNPKG

strapi-plugin-i18n

Version:

This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API

55 lines (43 loc) 1.64 kB
import { get } from 'lodash'; import { getType, getOtherInfos } from 'strapi-helper-plugin'; const removePasswordAndRelationsFieldFromData = (data, contentTypeSchema, componentSchema) => { const recursiveCleanData = (data, schema) => { return Object.keys(data).reduce((acc, current) => { const attrType = getType(schema, current); const value = get(data, current); const component = getOtherInfos(schema, [current, 'component']); const isRepeatable = getOtherInfos(schema, [current, 'repeatable']); if (attrType === 'dynamiczone') { acc[current] = value.map(componentValue => { const subCleanedData = recursiveCleanData( componentValue, componentSchema[componentValue.__component] ); return subCleanedData; }); return acc; } if (attrType === 'component') { if (isRepeatable) { /* eslint-disable indent */ acc[current] = value ? value.map(compoData => { const subCleanedData = recursiveCleanData(compoData, componentSchema[component]); return subCleanedData; }) : value; /* eslint-enable indent */ } else { acc[current] = value ? recursiveCleanData(value, componentSchema[component]) : value; } return acc; } if (attrType !== 'password' && attrType !== 'relation') { acc[current] = value; } return acc; }, {}); }; return recursiveCleanData(data, contentTypeSchema); }; export default removePasswordAndRelationsFieldFromData;