var isNumeric = function (num) { return !isNaN(num); }, _mapType = function (val) { if (val === '') { return null; } else if (val === 'true') { return true; } else if (val === 'false') { return false; } else if (isNumeric(val)) { return +val; } else if (val.indexOf('{') === 0) { try { return JSON.parse(val); } catch (e) { /*jshint unused:false */ return val; } } else { return val; } }, parseConfiguration = function () { var metaConfigTags = $('meta[name^="env-"]'), propertyName, config = {}, value, key, i; for (i = 0; i < metaConfigTags.length; i += 1) { key = $(metaConfigTags[i]).prop('name'); value = $(metaConfigTags[i]).prop('content'); propertyName = key.substring(4); // produce config name ignoring the initial 'env-'. config[propertyName] = _mapType(value); // map string values to types if possible } return config; }; export default parseConfiguration;