UNPKG

generator-begcode

Version:

Spring Boot + Angular/React/Vue in one handy generator

40 lines (39 loc) 1.47 kB
const filterNullishValues = value => value !== undefined && value !== null; export function removeFieldsWithNullishValues(object) { return filterValue(object, filterNullishValues); } function filterValue(object, filterValue = filterNullishValues) { const clone = {}; for (const [key, value] of Object.entries(object)) { if (filterValue(value)) { if (typeof value === 'object') { if (Array.isArray(value)) { clone[key] = value.filter(filterValue); } else { clone[key] = removeFieldsWithNullishValues(value); } } else { clone[key] = value; } } } return clone; } export const pickFields = (source, fields) => Object.fromEntries(fields.map(field => [field, source[field]])); export const mutateData = (context, ...mutations) => { for (const mutation of mutations) { const override = mutation.__override__; for (const [key, value] of Object.entries(mutation).filter(([key]) => key !== '__override__')) { if (typeof value === 'function') { if (override !== false || context[key] === undefined) { context[key] = value(context); } } else if (context[key] === undefined || override === true) { context[key] = value; } } } };