@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
JavaScript
;
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