var _ = require('lodash'), check = require('check-types'), schemas = require('./labelSchema.json'); module.exports = function( record ){ var labelParts = [ record.name.default ]; 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 fieldValue = record[schemaArr[i]]; if (check.unemptyString(fieldValue) && !_.contains(parts, fieldValue)) { parts.push( fieldValue ); return parts; } } return parts; }; for (var key in schema) { labelParts = buildOutput(labelParts, schema[key], record); } // de-dupe outputs labelParts = _.unique( labelParts ); return labelParts.join(', ').trim(); };