Matins completed
This commit is contained in:
1 parent
79ac617aa8
commit
366aea76bb
27 files changed
+3200
No files matched your search
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* Validate the Lenten Triodion (shared/triodion) converted from libcs.
|
||||
* Run with: npx tsx scripts/validate-triodion.ts
|
||||
*/
|
||||
|
||||
import { readFileSync, existsSync, readdirSync } from 'fs';
|
||||
import { join } from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __dirname = new URL('.', import.meta.url).pathname;
|
||||
const ROOT = join(__dirname, '..', 'static', 'data', 'shared', 'triodion');
|
||||
|
||||
interface ServiceNode { type: string; value: string }
|
||||
|
||||
let errors = 0;
|
||||
let warnings = 0;
|
||||
function err(msg: string) { console.error(` ERROR: ${msg}`); errors++; }
|
||||
function warn(msg: string) { console.warn(` WARN: ${msg}`); warnings++; }
|
||||
|
||||
let count = 0;
|
||||
for (const fn of readdirSync(ROOT).sort()) {
|
||||
if (!fn.endsWith('.json')) continue;
|
||||
const path = join(ROOT, fn);
|
||||
const nodes = JSON.parse(readFileSync(path, 'utf-8')) as ServiceNode[];
|
||||
if (!Array.isArray(nodes) || nodes.length < 5) { err(`${fn}: too few nodes`); continue; }
|
||||
const text = nodes.map(n => n.value ?? '').join(' ');
|
||||
const hirm = ['™', '№', 'G', '6', '1', 'h', 'E', 'z'].filter(m => text.includes(m));
|
||||
if (hirm.length) err(`${fn}: Hirm residue: ${hirm.join(',')}`);
|
||||
count++;
|
||||
}
|
||||
console.log(`triodion: ${count}/37 sections valid`);
|
||||
|
||||
// Verify template + text metadata exist
|
||||
const TPL = join(__dirname, '..', 'static', 'data', 'shared', 'services', 'templates', 'Triodion.json');
|
||||
if (!existsSync(TPL)) err('missing template: Triodion.json');
|
||||
|
||||
console.log(`\n${errors + warnings} issues (${errors} errors, ${warnings} warnings)`);
|
||||
process.exit(errors > 0 ? 1 : 0);
|
||||
Reference in new issue
Block a user