/**
 * Copie les polices Archivo et Inter depuis node_modules vers static/polices/.
 *
 * Le self-hébergement n'est pas une préférence : la politique de sécurité de
 * contenu déclarée dans svelte.config.js interdit toute requête vers un hôte
 * tiers, Google Fonts compris.
 */
import { copyFileSync, mkdirSync, readdirSync } from 'node:fs';
import { join } from 'node:path';

const DESTINATION = 'static/polices';
mkdirSync(DESTINATION, { recursive: true });

const familles = [
	{ paquet: '@fontsource/archivo', graisses: ['400', '600', '700', '900'] },
	{ paquet: '@fontsource/inter', graisses: ['400', '500', '600', '700'] }
];

let copiees = 0;
for (const { paquet, graisses } of familles) {
	const source = join('node_modules', paquet, 'files');
	for (const fichier of readdirSync(source)) {
		const estLatin = fichier.includes('-latin-') && fichier.endsWith('.woff2');
		const estNormal = fichier.includes('-normal.woff2');
		const graisseVoulue = graisses.some((g) => fichier.includes(`-${g}-`));
		if (estLatin && estNormal && graisseVoulue) {
			copyFileSync(join(source, fichier), join(DESTINATION, fichier));
			copiees += 1;
		}
	}
}

console.log(`${copiees} fichiers de police copiés dans ${DESTINATION}`);
