48 lines
1.5 KiB
JavaScript
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'); |