var schemas = require('./outputSchema.json'); module.exports = function( record ){ var adminParts = []; var schema = schemas.default; if (record.country_a && record.country_a.length && schemas[record.country_a]) { schema = schemas[record.country_a]; } var buildOutput = function(parts, schemaArr, record) { for (var i=0; i<schemaArr.length; i++) { var rec = record[schemaArr[i]]; if (rec && rec.length) { parts.push( rec ); return parts; } } return parts; }; for (var key in schema) { adminParts = buildOutput(adminParts, schema[key], record); } var outputs = [ record.name.default ].concat( adminParts ); // de-dupe outputs outputs = outputs.filter( function( i, pos ) { return outputs.indexOf( i ) === pos; }); return outputs.join(', ').trim(); };