const fs = require('fs');
const customIcons = require('../app/containers/CustomIcon/selection.json');

const sortObject = o => Object.keys(o).sort().reduce((r, k) => { r[k] = o[k]; return r; }, {});

let icons = {};

// map icons
customIcons.icons.forEach((icon) => {
	icon.properties.name.split(/\s*,\s*/g).forEach((name) => {
		icons = {...icons, [name]: icon.properties.code};
	});
});

// sort icons by name
icons = sortObject(icons);

// generate mappedIcons file
let mappedIcons = 'export const mappedIcons = {\n';

// map icons to file
Object.keys(icons).forEach((icon)=> {
	mappedIcons += `\t'${icon}': ${icons[icon]},\n`;
});

// close file
mappedIcons = `${mappedIcons.slice(0, -2) }\n};\n`;

// write file
fs.writeFile('app/containers/CustomIcon/mappedIcons.js', mappedIcons, 'utf8', function (err) {
	if (err) {
		console.log('An error occurred while writing Object to File.');
		console.log(err);
		return;
	}

	console.log('🚀 Icons name generated.');
});
