UNPKG

bible-checker

Version:

A bible tool to run several checks with a target translation and a source tranlation

59 lines (58 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.runChecks = runChecks; var _utils = require("./utils.js"); /** * Run all checks based on the provided recipe. * @param {object} source - Parsed JSON object of the source text. * @param {object} target - Parsed JSON object of the target text. * @param {array} recipe - Array of check definitions. * @returns {object} JSON report of checks. */ function runChecks(source, target, recipe) { const report = []; for (const check of recipe) { if (!check.enabled) continue; let result; switch (check.name) { case 'versestats::verse_stats': result = (0, _utils.detectShortLongVerses)(source, target, check.parameters?.short_threshold || 20); break; case 'chapterverse::integrity_check': result = (0, _utils.checkChapterVerseIntegrity)(source, target); break; case 'chapterverse::missing_verses': result = (0, _utils.detectMissingVerses)(source, target); break; case 'textquality::repeated_words_whitespace': result = (0, _utils.detectRepeatedWordsAndWhitespace)(target); break; case 'textquality::unmatched_punctuation': result = (0, _utils.detectUnmatchedPunctuation)(target); break; case "numbers_check::mismatches": result = (0, _utils.detectNumberMismatches)(source, target); break; case "footnote::quotation_mismatch": result = (0, _utils.detectFootnoteQuotes)(target); break; default: console.warn(`Unknown check: ${check.name}`); continue; } if (result?.issues?.length > 0) { report.push({ name: check.name, readName: check.readName, description: check.description, level: check.level, issues: result.issues }); } } return { checks: report }; }