Skip to content

Instantly share code, notes, and snippets.

@sashak007
Last active July 21, 2017 02:41
Show Gist options
  • Save sashak007/42f515f82357349ad9f2e08c698657f2 to your computer and use it in GitHub Desktop.
Save sashak007/42f515f82357349ad9f2e08c698657f2 to your computer and use it in GitHub Desktop.
function flatten(input) {
let flattenArr = [];
for(let i = input.child.length - 1; i >= 0; i--) {
for(const prop in input.child[i]) {
if(prop === 'child') {
flattenArr = flattenArr.concat(flatten(input.child[i]));
delete input.child[i].child;
flattenArr.push(input.child[i]);
return flattenArr;
}
}
flattenArr.push(input.child[i]);
}
return flattenArr;
}
module.exports = function munge(input) {
const formattedTypesData = flatten(input).map(elem => {
return {
value: elem.name,
option: {id: elem.id}
};
});
const data = {
value: input.name,
options: {id: input.id},
types: formattedTypesData
};
const consolidatedDataFormatted = {};
consolidatedDataFormatted[input.name] = data;
return consolidatedDataFormatted;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment