49 lines
1.3 KiB
JavaScript
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()
|