src/isbn-issn.js
Function fix
has 67 lines of code (exceeds 25 allowed). Consider refactoring. Open
Open
function fix(record) {
getRelevantFields(record).forEach(field => {
if (field.tag === '020') {
field.subfields.forEach(subfield => fixField020Subfield(field, subfield));
return;
Function fixField020Subfield
has 54 lines of code (exceeds 25 allowed). Consider refactoring. Open
Open
function fixField020Subfield(field, subfield) {
split020A(); // subfield and field are in the scope
addHyphens(subfield);
handleInvalidIsbn(field, subfield); // remove 020$a, add 020$z, Do this last, as it uses deletion
return;
Function getRelevantFields
has 33 lines of code (exceeds 25 allowed). Consider refactoring. Open
Open
function getRelevantFields(record) {
//return record.get(/^(?:020|022)$/u).filter(field => {
return record.fields.filter(field => {
if (!field.subfields) {
return false;
Function validate
has 31 lines of code (exceeds 25 allowed). Consider refactoring. Open
Open
function validate(record) {
const fields = getRelevantFields(record);
if (fields.length === 0) {
return {valid: true};
Avoid too many return
statements within this function. Open
Open
return !validateISSN(subfield.value);
Avoid too many return
statements within this function. Open
Open
return false;