var data = require('./build/data.json') var objectAssign = require('object-assign') Object.keys(data).forEach(function(key) { // Returns a string representation of html attributes var htmlAttributes = function(icon, options) { var attributes = [] var attrObj = objectAssign({}, data[key].options, options) // If the user passed in options if (options) { // If any of the width or height is passed in if(options["width"] || options["height"]) { attrObj["width"] = options["width"] ? options["width"] : (parseInt(options["height"]) * data[key].options["width"] / data[key].options["height"]) attrObj["height"] = options["height"] ? options["height"] : (parseInt(options["width"]) * data[key].options["height"] / data[key].options["width"]) } // If the user passed in class if (options["class"]) { attrObj["class"] = "octicon octicon-" + key + " " + options["class"] attrObj["class"].trim() } // If the user passed in aria-label if (options["aria-label"]) { attrObj["aria-label"] = options["aria-label"] attrObj["role"] = "img" // Un-hide the icon delete attrObj["aria-hidden"] } } Object.keys(attrObj).forEach(function(option) { attributes.push(option + "=\"" + attrObj[option] + "\"") }) return attributes.join(" ").trim() } // Set the symbol for easy access data[key].symbol = key // Set all the default options data[key].options = { "version": "1.1", "width": data[key].width, "height": data[key].height, "viewBox": "0 0 " + data[key].width + " " + data[key].height, "class": "octicon octicon-" + key, "aria-hidden": "true" } // Function to return an SVG object data[key].toSVG = function(options) { return "" + data[key].path + "" } // Function to return an SVG object with a use, assuming you use the svg sprite data[key].toSVGUse = function(options) { return "" } }) // Import data into exports module.exports = data