mirror of
https://github.com/multipleof4/stain.otf.git
synced 2026-01-13 16:17:55 +00:00
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
import fs from "fs";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
import opentype from "opentype.js";
|
|
import { SUPPORTED_CHARS } from "../src/glyphs.js";
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
const fontPath = path.join(__dirname, "..", "dist", "Stain-Regular.ttf");
|
|
|
|
if (!fs.existsSync(fontPath)) {
|
|
console.error("Font not found:", fontPath);
|
|
process.exit(1);
|
|
}
|
|
|
|
try {
|
|
const font = opentype.loadSync(fontPath);
|
|
if (!font.glyphs || font.glyphs.length === 0) {
|
|
console.error("Font has no glyphs");
|
|
process.exit(1);
|
|
}
|
|
const sample = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
for (const ch of sample) {
|
|
if (!SUPPORTED_CHARS.includes(ch)) {
|
|
console.error("Missing from SUPPORTED_CHARS:", ch);
|
|
process.exit(1);
|
|
}
|
|
const g = font.charToGlyph(ch);
|
|
if (!g || !g.path || g.path.commands.length === 0) {
|
|
console.error("Missing or empty glyph for", ch);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
console.log("Font validation passed.");
|
|
} catch (e) {
|
|
console.error("Error validating font:", e);
|
|
process.exit(1);
|
|
}
|