tabler-icons/packages/icons/build.mjs

49 lines
1.3 KiB
JavaScript

import fs from 'fs'
import { getAllIconsMerged, getAllIcons } from '../../.build/helpers.mjs'
const iconsMerged = getAllIconsMerged()
const icons = getAllIcons(true, true)
const buildJSON = () => {
console.log('Building icons.json')
fs.writeFileSync(`./icons.json`, JSON.stringify(iconsMerged, null, 2))
}
const buildNodes = () => {
console.log('Building tabler-nodes.json')
Object.entries(icons).forEach(([type, icons]) => {
const iconNodes = icons.reduce((acc, { name, obj }) => {
acc[name] = obj.children.map(({ name, attributes }) => [name, attributes]);
return acc;
}, {});
const iconNodesStringified = JSON.stringify(iconNodes, null, 2);
fs.writeFileSync(`./tabler-nodes-${type}.json`, iconNodesStringified);
})
}
const buildSvgs = () => {
console.log('Building svgs')
Object.entries(icons).forEach(([type, icons]) => {
fs.mkdirSync(`./icons/${type}`, { recursive: true });
icons.forEach(({ name, content, category }) => {
fs.writeFileSync(`./icons/${type}/${name}.svg`, content);
if (category) {
fs.mkdirSync(`./categories/${type}/${category}`, { recursive: true });
fs.writeFileSync(`./categories/${type}/${category}/${name}.svg`, content);
}
})
})
}
buildJSON()
buildNodes()
buildSvgs()