fontawesome-5-icons-list
Version:
A package to get all icons name from fontawesome 5 free version
58 lines (49 loc) • 1.18 kB
JavaScript
const yaml = require("js-yaml")
const { readFileSync, writeFileSync } = require("fs")
const { join } = require("path")
// convert style name to FA class
function styleToClass(style) {
switch (style) {
case "solid":
return "fas"
case "regular":
return "far"
case "brands":
return "fab"
default:
return "fa"
}
}
const parsedData = yaml.load(
readFileSync(
join(
__dirname,
"",
"../node_modules/@fortawesome/fontawesome-free/metadata/icons.yml",
),
),
"utf8",
)
const keys = Object.keys(parsedData)
const data = [...Object.values(parsedData)].map((icon, index) => {
// set name
icon.name = keys[index]
// set prefixes
icon.prefixClasses = []
icon.styles.forEach((style) => {
icon.prefixClasses.push(styleToClass(style))
})
// set full icon class
icon.classes = []
icon.prefixClasses.forEach((prefix) => {
icon.classes.push(prefix + " fa-" + icon.name)
})
// reset search
icon.search = [...icon.search.terms, icon.name]
// remove non-used
delete icon.voted
// return icon
return icon
})
// insert to json file
writeFileSync("data.json", JSON.stringify(data))