UNPKG

@natlibfi/melinda-record-match-validator

Version:

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

46 lines (45 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.check984 = check984; // Implements MRA-744 function check984({ record1, record2 }) { const score1 = score984(record1); const score2 = score984(record2); // Should we use more generic score1 > score2? Does not having a 260/264 field imply badness? // Currently if (score1 > score2) { return 'A'; } if (score2 > score1) { return 'B'; } return true; function score984(currRecord) { const fields984 = currRecord.fields.filter(f => f.tag === '984'); if (fields984.some(f => isPreferred(f))) { return 1; } if (fields984.some(f => isSnubbed(f))) { return -1; } return 0; } function isPreferred(field) { if (field.tag !== '984') { return false; } return field.subfields.some(sf => sf.code === 'a' && sf.value === 'ALWAYS-PREFER-IN-MERGE'); } function isSnubbed(field) { if (field.tag !== '984') { return false; } return field.subfields.some(sf => sf.code === 'a' && sf.value === 'NEVER-PREFER-IN-MERGE'); } } //# sourceMappingURL=field984.js.map