1
0
mirror of https://github.com/simple-icons/simple-icons.git synced 2024-12-16 01:10:30 +02:00

Build icons in order (#7852)

This commit is contained in:
LitoMore 2022-09-24 02:44:28 +08:00 committed by GitHub
parent d5444f6995
commit fdc707bf81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -81,31 +81,29 @@ const build = async () => {
};
// 'main'
const iconsBarrelMjs = [];
const iconsBarrelJs = [];
const iconsBarrelDts = [];
const buildIcons = [];
await Promise.all(
const buildIcons = await Promise.all(
icons.map(async (icon) => {
const filename = getIconSlug(icon);
const svgFilepath = path.resolve(iconsDir, `${filename}.svg`);
icon.svg = (await fs.readFile(svgFilepath, UTF8)).replace(/\r?\n/, '');
icon.path = svgToPath(icon.svg);
icon.slug = filename;
buildIcons.push(icon);
const iconObject = iconToObject(icon);
const iconExportName = slugToVariableName(icon.slug);
// add object to the barrel file
iconsBarrelJs.push(`${iconExportName}:${iconObject},`);
iconsBarrelMjs.push(`export const ${iconExportName}=${iconObject}`);
iconsBarrelDts.push(`export const ${iconExportName}:I;`);
return { icon, iconObject, iconExportName };
}),
);
const iconsBarrelDts = [];
const iconsBarrelJs = [];
const iconsBarrelMjs = [];
buildIcons.forEach(({ icon, iconObject, iconExportName }) => {
iconsBarrelDts.push(`export const ${iconExportName}:I;`);
iconsBarrelJs.push(`${iconExportName}:${iconObject},`);
iconsBarrelMjs.push(`export const ${iconExportName}=${iconObject}`);
});
// constants used in templates to reduce package size
const constantsString = `const a='<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>',b='</title><path d="',c='"/></svg>';`;
@ -113,7 +111,7 @@ const build = async () => {
const rawIndexJs = util.format(
indexTemplate,
constantsString,
buildIcons.map(iconToKeyValue).join(','),
buildIcons.map(({ icon }) => iconToKeyValue(icon)).join(','),
);
await writeJs(indexFile, rawIndexJs);