UNPKG

@natlibfi/melinda-record-match-validator

Version:

Validates if two records matched by melinda-record-matching can be merged and sets merge priority

31 lines (30 loc) 1.45 kB
import createDebugLogger from "debug"; import * as features from "@natlibfi/melinda-record-matching/src/match-detection/features/bib/index.js"; const debug = createDebugLogger("@natlibfi/melinda-record-match-validator:language"); const debugDev = debug.extend("dev"); const { extract, compare, name } = features["language"](); debug(`Using matcher feature: ${name}`); export function getLanguageFeatures(record, recordExternal = {}) { return { language: extract({ record, recordExternal }) }; } export function compareLanguageFeatures({ languageFeatures1, languageFeatures2 }) { debugDev(JSON.stringify(languageFeatures1)); debugDev(JSON.stringify(languageFeatures2)); const compareResult = compare(languageFeatures1.language, languageFeatures2.language); debug(`CompareResult: ${compareResult}`); return convertPointsToBoolean(compareResult); } export function checkLanguage({ record1, record2 }) { const languageFeatures1 = getLanguageFeatures(record1); const languageFeatures2 = getLanguageFeatures(record2); return compareLanguageFeatures({ languageFeatures1, languageFeatures2 }); } function convertPointsToBoolean(points, threshold = 0) { if (points < threshold) { debugDev(`Returning false for less points (${points}) than threshold ${threshold}`); return false; } debugDev(`Returning true for equal or more points (${points}) than threshold ${threshold}`); return true; } //# sourceMappingURL=language.js.map