Files
go-jdenticon/generate_reference.js
Kevin McIntyre f84b511895 init
2025-06-18 01:00:00 -04:00

48 lines
1.5 KiB
JavaScript

#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const jdenticon = require('./jdenticon-js/dist/jdenticon-node.js');
// Test emails
const testEmails = [
'example1@gmail.com',
'example2@yahoo.com'
];
// Test sizes
const sizes = [64, 128];
// Create reference directory
const refDir = './reference';
if (!fs.existsSync(refDir)) {
fs.mkdirSync(refDir);
}
// Generate reference SVGs and PNGs
testEmails.forEach(email => {
sizes.forEach(size => {
// Generate SVG
const svg = jdenticon.toSvg(email, size);
const svgFilename = `${email.replace('@', '_at_').replace('.', '_')}_${size}.svg`;
fs.writeFileSync(path.join(refDir, svgFilename), svg);
console.log(`Generated reference SVG: ${svgFilename}`);
// Generate PNG (if supported)
try {
const pngBuffer = jdenticon.toPng(email, size);
const pngFilename = `${email.replace('@', '_at_').replace('.', '_')}_${size}.png`;
fs.writeFileSync(path.join(refDir, pngFilename), pngBuffer);
console.log(`Generated reference PNG: ${pngFilename}`);
} catch (err) {
console.log(`PNG generation failed for ${email}@${size}: ${err.message}`);
}
});
});
// Also generate a test with fixed coordinates we can examine
const testSvg = jdenticon.toSvg('test-hash', 64);
fs.writeFileSync(path.join(refDir, 'test-hash_64.svg'), testSvg);
console.log('Generated test-hash reference SVG');
console.log('\nReference files generated in ./reference/ directory');