UNPKG

@natlibfi/melinda-record-match-validator

Version:

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

71 lines (67 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDefaultMissValue = getDefaultMissValue; exports.getSubfield = getSubfield; exports.getSubfieldValue = getSubfieldValue; exports.getSubfieldValues = getSubfieldValues; exports.getSubfields = getSubfields; exports.hasField = hasField; exports.hasFields = hasFields; exports.stripPunc = stripPunc; //import createDebugLogger from 'debug'; //import {nvdebug} from '../utils'; //const debug = createDebugLogger('@natlibfi/melinda-record-match-validator:collectRecordValues:collectFields'); function hasFields(tag, record, useFunction, useFunctionParameters) { const fields = record.get(tag); if (useFunction !== undefined) { //const result = fields.map(field => useFunction(field, useFunctionParameters)); return fields.map(field => useFunction(field, useFunctionParameters)); } return fields; } function hasField(tag, record, useFunction, useFunctionParameters) { const fields = record.get(tag); if (fields.length === 0) { return []; } if (useFunction !== undefined) { return useFunction(fields[0], useFunctionParameters); } return [fields[0]]; } function getDefaultMissValue() { return 'undefined'; } // Check 773 multiple sub code w & g // Check 245 multiple sub code n & p // Check 042 multiple sub code a function getSubfield(field, subfieldCode) { const [value] = field.subfields.filter(sub => sub.code === subfieldCode).map(sub => sub.value); if (value === undefined) { return getDefaultMissValue(); } return value; } function getSubfields(field, subfieldCode) { return field.subfields.filter(sub => sub.code === subfieldCode).map(sub => sub.value); } function getSubfieldValue(field, subfieldCode) { const values = field.subfields.filter(sub => sub.code === subfieldCode).map(sub => sub.value); if (values.length === 0) { return null; } return values[0]; } function getSubfieldValues(field, subfieldCode) { if (!field.subfields) { // sanityCheck return []; } return field.subfields.filter(sub => sub.code === subfieldCode).map(sub => sub.value); } function stripPunc(value) { return value.replace(/(?: [=;:/]|[.,])$/u, ''); } //# sourceMappingURL=collectUtils.js.map