mirror of
https://github.com/lucide-icons/lucide.git
synced 2025-12-17 08:47:41 +01:00
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
|
|
import path from 'path';
|
||
|
|
import icons from '../icons.json';
|
||
|
|
import {readSvgDirectory} from './helpers';
|
||
|
|
|
||
|
|
const ICONS_DIR = path.resolve(__dirname, '../icons');
|
||
|
|
|
||
|
|
console.log(`Read all icons`);
|
||
|
|
|
||
|
|
const svgFiles = readSvgDirectory(ICONS_DIR);
|
||
|
|
|
||
|
|
const iconNames = svgFiles.map(icon => icon.split('.')[0]);
|
||
|
|
|
||
|
|
let error = false;
|
||
|
|
|
||
|
|
iconNames.forEach(iconName => {
|
||
|
|
if (typeof icons.icons[iconName] === 'undefined') {
|
||
|
|
console.error(`'${iconName}.svg' is not present in 'icons.json'.`);
|
||
|
|
error = true;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
Object.keys(icons.icons).forEach(iconName => {
|
||
|
|
const icon = icons.icons[iconName];
|
||
|
|
if (iconNames.indexOf(iconName) === -1) {
|
||
|
|
console.error(`'${iconName}.svg' does not exist.`);
|
||
|
|
error = true;
|
||
|
|
}
|
||
|
|
icon.categories.forEach(categoryName => {
|
||
|
|
if (typeof icons.categories[categoryName] === 'undefined') {
|
||
|
|
console.error(`Icon '${iconName}' refers to the non-existing category '${categoryName}'.`);
|
||
|
|
error = true;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
Object.keys(icons.categories).forEach(categoryName => {
|
||
|
|
const category = icons.categories[categoryName];
|
||
|
|
if (!category.icon) {
|
||
|
|
console.error(`Category '${categoryName}' does not use an icon '${category.icon}'.`);
|
||
|
|
error = true;
|
||
|
|
} else if (typeof icons.icons[category.icon] === 'undefined') {
|
||
|
|
console.error(`Category '${categoryName}' uses the non-existing icon '${category.icon}'.`);
|
||
|
|
error = true;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
if (error) {
|
||
|
|
throw new Error('At least one error in icons.json prevents from committing changes.');
|
||
|
|
}
|