@natlibfi/marc-record-validators-melinda 11.6.6 → 11.6.7-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/.github/workflows/melinda-node-tests.yml +1 -1
  2. package/dist/access-rights.js +1 -5
  3. package/dist/access-rights.js.map +1 -1
  4. package/dist/addMissingField336.js +1 -1
  5. package/dist/addMissingField336.js.map +1 -1
  6. package/dist/cyrillux-usemarcon-replacement.js +41 -45
  7. package/dist/cyrillux-usemarcon-replacement.js.map +1 -1
  8. package/dist/cyrillux.js +13 -17
  9. package/dist/cyrillux.js.map +1 -1
  10. package/dist/disambiguateSeriesStatements.js +3 -4
  11. package/dist/disambiguateSeriesStatements.js.map +1 -1
  12. package/dist/double-commas.js +2 -1
  13. package/dist/double-commas.js.map +1 -1
  14. package/dist/duplicates-ind1.js +1 -1
  15. package/dist/duplicates-ind1.js.map +1 -1
  16. package/dist/empty-fields.js +0 -4
  17. package/dist/empty-fields.js.map +1 -1
  18. package/dist/ending-punctuation.js +21 -49
  19. package/dist/ending-punctuation.js.map +1 -1
  20. package/dist/ending-whitespace.js +0 -4
  21. package/dist/ending-whitespace.js.map +1 -1
  22. package/dist/field-008-18-34-character-groups.js +4 -5
  23. package/dist/field-008-18-34-character-groups.js.map +1 -1
  24. package/dist/field-505-separators.js +8 -6
  25. package/dist/field-505-separators.js.map +1 -1
  26. package/dist/field-521-fix.js +5 -6
  27. package/dist/field-521-fix.js.map +1 -1
  28. package/dist/field-exclusion.js +5 -12
  29. package/dist/field-exclusion.js.map +1 -1
  30. package/dist/field-exclusion.spec.js +3 -5
  31. package/dist/field-exclusion.spec.js.map +1 -1
  32. package/dist/field-structure.js +2 -5
  33. package/dist/field-structure.js.map +1 -1
  34. package/dist/fields-present.js +1 -1
  35. package/dist/fields-present.js.map +1 -1
  36. package/dist/fields-present.spec.js +1 -1
  37. package/dist/fields-present.spec.js.map +1 -1
  38. package/dist/fix-33X.js +5 -6
  39. package/dist/fix-33X.js.map +1 -1
  40. package/dist/fix-country-codes.js +3 -4
  41. package/dist/fix-country-codes.js.map +1 -1
  42. package/dist/fix-language-codes.js +12 -9
  43. package/dist/fix-language-codes.js.map +1 -1
  44. package/dist/fixRelatorTerms.js +8 -8
  45. package/dist/fixRelatorTerms.js.map +1 -1
  46. package/dist/fixed-fields.js +1 -4
  47. package/dist/fixed-fields.js.map +1 -1
  48. package/dist/identical-fields.js +2 -3
  49. package/dist/identical-fields.js.map +1 -1
  50. package/dist/indicator-fixes.js +14 -15
  51. package/dist/indicator-fixes.js.map +1 -1
  52. package/dist/isbn-issn.js +8 -11
  53. package/dist/isbn-issn.js.map +1 -1
  54. package/dist/item-language.js +5 -12
  55. package/dist/item-language.js.map +1 -1
  56. package/dist/merge-fields/counterpartField.js +6 -8
  57. package/dist/merge-fields/counterpartField.js.map +1 -1
  58. package/dist/merge-fields/index.js +3 -3
  59. package/dist/merge-fields/index.js.map +1 -1
  60. package/dist/merge-fields/mergeConstraints.js +0 -1
  61. package/dist/merge-fields/mergeConstraints.js.map +1 -1
  62. package/dist/merge-fields/mergeField.js +12 -18
  63. package/dist/merge-fields/mergeField.js.map +1 -1
  64. package/dist/merge-fields/mergeIndicator.js +5 -5
  65. package/dist/merge-fields/mergeIndicator.js.map +1 -1
  66. package/dist/merge-fields/mergeOrAddPostprocess.js +6 -9
  67. package/dist/merge-fields/mergeOrAddPostprocess.js.map +1 -1
  68. package/dist/merge-fields/mergeOrAddSubfield.js +6 -8
  69. package/dist/merge-fields/mergeOrAddSubfield.js.map +1 -1
  70. package/dist/merge-fields/mergeSubfield.js +8 -8
  71. package/dist/merge-fields/mergeSubfield.js.map +1 -1
  72. package/dist/merge-fields/removeDuplicateSubfields.js +1 -2
  73. package/dist/merge-fields/removeDuplicateSubfields.js.map +1 -1
  74. package/dist/merge-fields/worldKnowledge.js +1 -1
  75. package/dist/merge-fields/worldKnowledge.js.map +1 -1
  76. package/dist/mergeField500Lisapainokset.js +0 -3
  77. package/dist/mergeField500Lisapainokset.js.map +1 -1
  78. package/dist/mergeRelatorTermFields.js +3 -3
  79. package/dist/mergeRelatorTermFields.js.map +1 -1
  80. package/dist/modernize-502.js +6 -6
  81. package/dist/modernize-502.js.map +1 -1
  82. package/dist/multiple-subfield-0.js +4 -4
  83. package/dist/multiple-subfield-0.js.map +1 -1
  84. package/dist/non-breaking-space.js +0 -4
  85. package/dist/non-breaking-space.js.map +1 -1
  86. package/dist/normalize-dashes.js +5 -4
  87. package/dist/normalize-dashes.js.map +1 -1
  88. package/dist/normalize-identifiers.js +6 -6
  89. package/dist/normalize-identifiers.js.map +1 -1
  90. package/dist/normalize-qualifying-information.js +4 -4
  91. package/dist/normalize-qualifying-information.js.map +1 -1
  92. package/dist/normalize-utf8-diacritics.js +7 -7
  93. package/dist/normalize-utf8-diacritics.js.map +1 -1
  94. package/dist/normalizeFieldForComparison.js +21 -20
  95. package/dist/normalizeFieldForComparison.js.map +1 -1
  96. package/dist/normalizeSubfieldValueForComparison.js +1 -2
  97. package/dist/normalizeSubfieldValueForComparison.js.map +1 -1
  98. package/dist/prepublicationUtils.js +3 -3
  99. package/dist/prepublicationUtils.js.map +1 -1
  100. package/dist/punctuation/index.js +14 -31
  101. package/dist/punctuation/index.js.map +1 -1
  102. package/dist/punctuation2.js +9 -10
  103. package/dist/punctuation2.js.map +1 -1
  104. package/dist/reindexSubfield6OccurenceNumbers.js +8 -9
  105. package/dist/reindexSubfield6OccurenceNumbers.js.map +1 -1
  106. package/dist/removeDuplicateDataFields.js +18 -20
  107. package/dist/removeDuplicateDataFields.js.map +1 -1
  108. package/dist/removeInferiorDataFields.js +16 -19
  109. package/dist/removeInferiorDataFields.js.map +1 -1
  110. package/dist/resolvable-ext-references-melinda.js +4 -8
  111. package/dist/resolvable-ext-references-melinda.js.map +1 -1
  112. package/dist/resolveOrphanedSubfield6s.js +9 -9
  113. package/dist/resolveOrphanedSubfield6s.js.map +1 -1
  114. package/dist/sanitize-vocabulary-source-codes.js +9 -9
  115. package/dist/sanitize-vocabulary-source-codes.js.map +1 -1
  116. package/dist/sort-tags.js +2 -2
  117. package/dist/sort-tags.js.map +1 -1
  118. package/dist/sortFields.js +4 -9
  119. package/dist/sortFields.js.map +1 -1
  120. package/dist/sortRelatorTerms.js +4 -5
  121. package/dist/sortRelatorTerms.js.map +1 -1
  122. package/dist/sortSubfields.js +5 -6
  123. package/dist/sortSubfields.js.map +1 -1
  124. package/dist/stripPunctuation.js +2 -2
  125. package/dist/stripPunctuation.js.map +1 -1
  126. package/dist/subfield-exclusion.js +4 -11
  127. package/dist/subfield-exclusion.js.map +1 -1
  128. package/dist/subfield6Utils.js +12 -11
  129. package/dist/subfield6Utils.js.map +1 -1
  130. package/dist/subfield8Utils.js +8 -9
  131. package/dist/subfield8Utils.js.map +1 -1
  132. package/dist/subfieldValueNormalizations.js +5 -8
  133. package/dist/subfieldValueNormalizations.js.map +1 -1
  134. package/dist/sync-007-and-300.js +8 -8
  135. package/dist/sync-007-and-300.js.map +1 -1
  136. package/dist/translate-terms.js +5 -6
  137. package/dist/translate-terms.js.map +1 -1
  138. package/dist/typeOfDate-008.js +3 -4
  139. package/dist/typeOfDate-008.js.map +1 -1
  140. package/dist/unicode-decomposition.js +1 -1
  141. package/dist/unicode-decomposition.js.map +1 -1
  142. package/dist/update-field-540.js +5 -6
  143. package/dist/update-field-540.js.map +1 -1
  144. package/dist/urn.js +4 -9
  145. package/dist/urn.js.map +1 -1
  146. package/dist/utils.js +5 -9
  147. package/dist/utils.js.map +1 -1
  148. package/eslint.config.mjs +53 -0
  149. package/package.json +12 -13
  150. package/src/access-rights.js +4 -4
  151. package/src/addMissingField336.js +1 -1
  152. package/src/cyrillux-usemarcon-replacement.js +38 -38
  153. package/src/cyrillux.js +14 -14
  154. package/src/disambiguateSeriesStatements.js +3 -3
  155. package/src/double-commas.js +2 -2
  156. package/src/duplicates-ind1.js +1 -1
  157. package/src/empty-fields.js +4 -4
  158. package/src/ending-punctuation.js +46 -49
  159. package/src/ending-whitespace.js +0 -2
  160. package/src/field-008-18-34-character-groups.js +5 -5
  161. package/src/field-505-separators.js +6 -6
  162. package/src/field-521-fix.js +6 -6
  163. package/src/field-exclusion.js +12 -12
  164. package/src/field-exclusion.spec.js +4 -4
  165. package/src/field-structure.js +5 -5
  166. package/src/fields-present.js +1 -1
  167. package/src/fields-present.spec.js +1 -1
  168. package/src/fix-33X.js +5 -5
  169. package/src/fix-country-codes.js +3 -3
  170. package/src/fix-language-codes.js +10 -9
  171. package/src/fixRelatorTerms.js +8 -8
  172. package/src/fixed-fields.js +3 -3
  173. package/src/identical-fields.js +3 -3
  174. package/src/indicator-fixes.js +15 -15
  175. package/src/isbn-issn.js +11 -11
  176. package/src/item-language.js +10 -10
  177. package/src/merge-fields/counterpartField.js +7 -7
  178. package/src/merge-fields/index.js +3 -3
  179. package/src/merge-fields/mergeConstraints.js +1 -1
  180. package/src/merge-fields/mergeField.js +16 -17
  181. package/src/merge-fields/mergeIndicator.js +5 -5
  182. package/src/merge-fields/mergeOrAddPostprocess.js +9 -9
  183. package/src/merge-fields/mergeOrAddSubfield.js +6 -6
  184. package/src/merge-fields/mergeSubfield.js +8 -8
  185. package/src/merge-fields/removeDuplicateSubfields.js +1 -2
  186. package/src/merge-fields/worldKnowledge.js +1 -1
  187. package/src/mergeField500Lisapainokset.js +0 -2
  188. package/src/mergeRelatorTermFields.js +3 -3
  189. package/src/modernize-502.js +6 -6
  190. package/src/multiple-subfield-0.js +4 -4
  191. package/src/non-breaking-space.js +0 -2
  192. package/src/normalize-dashes.js +4 -4
  193. package/src/normalize-identifiers.js +6 -6
  194. package/src/normalize-qualifying-information.js +4 -4
  195. package/src/normalize-utf8-diacritics.js +7 -7
  196. package/src/normalizeFieldForComparison.js +20 -20
  197. package/src/normalizeSubfieldValueForComparison.js +1 -1
  198. package/src/prepublicationUtils.js +3 -3
  199. package/src/punctuation/index.js +29 -29
  200. package/src/punctuation2.js +10 -10
  201. package/src/reindexSubfield6OccurenceNumbers.js +9 -9
  202. package/src/removeDuplicateDataFields.js +21 -23
  203. package/src/removeInferiorDataFields.js +19 -19
  204. package/src/resolvable-ext-references-melinda.js +8 -8
  205. package/src/resolveOrphanedSubfield6s.js +9 -9
  206. package/src/sanitize-vocabulary-source-codes.js +8 -8
  207. package/src/sort-tags.js +2 -2
  208. package/src/sortFields.js +6 -6
  209. package/src/sortRelatorTerms.js +5 -5
  210. package/src/sortSubfields.js +6 -6
  211. package/src/stripPunctuation.js +2 -2
  212. package/src/subfield-exclusion.js +11 -11
  213. package/src/subfield6Utils.js +11 -11
  214. package/src/subfield8Utils.js +6 -9
  215. package/src/subfieldValueNormalizations.js +5 -7
  216. package/src/sync-007-and-300.js +8 -8
  217. package/src/translate-terms.js +3 -5
  218. package/src/typeOfDate-008.js +3 -3
  219. package/src/unicode-decomposition.js +1 -1
  220. package/src/update-field-540.js +6 -6
  221. package/src/urn.js +8 -6
  222. package/src/utils.js +8 -8
  223. package/.eslintignore +0 -1
@@ -22,7 +22,7 @@ export default function () {
22
22
  normalizeSubfieldValues(field, catLang);
23
23
  });
24
24
 
25
- // message.valid = !(message.message.length >= 1); // eslint-disable-line functional/immutable-data
25
+ // message.valid = !(message.message.length >= 1);
26
26
  return res;
27
27
  }
28
28
 
@@ -34,7 +34,7 @@ export default function () {
34
34
  validateField(field, res, catLang);
35
35
  });
36
36
 
37
- res.valid = !(res.message.length >= 1); // eslint-disable-line functional/immutable-data
37
+ res.valid = !(res.message.length >= 1);
38
38
  return res;
39
39
  }
40
40
 
@@ -47,7 +47,7 @@ export default function () {
47
47
  const normalizedField = normalizeSubfieldValues(clone(field), catLang);
48
48
  const mod = fieldToString(normalizedField);
49
49
  if (orig !== mod) { // Fail as the input is "broken"/"crap"/sumthing
50
- res.message.push(`'${orig}' requires subfield internal mods/normalization`); // eslint-disable-line functional/immutable-data
50
+ res.message.push(`'${orig}' requires subfield internal mods/normalization`);
51
51
  return;
52
52
  }
53
53
  return;
@@ -57,7 +57,6 @@ export default function () {
57
57
 
58
58
  function handleInitials(value, subfieldCode, field) {
59
59
  // MRA-267/273
60
- /* eslint-disable */
61
60
  if (field.ind1 === '1' && subfieldCode === 'a' && ['100', '600', '700', '800'].includes(field.tag) && !fieldHasSubfield(field, '0')) {
62
61
  // Fix MRA-267/273 (partial): Handle the most common case(s). (And extend them rules later on if the need arises):
63
62
  // No longest initial sequence I've seen is six (in a Sri Lankan name).
@@ -69,7 +68,6 @@ function handleInitials(value, subfieldCode, field) {
69
68
 
70
69
  return value;
71
70
 
72
- /* eslint-enable */
73
71
  function initialsInRow(str) {
74
72
  // initial space confirms us that it's an initial
75
73
  return str.match(/ (?:[A-Z]|Å|Ä|Ö)\.(?:[A-Z]|Å|Ä|Ö)/u);
@@ -120,7 +118,7 @@ function getNormalizedValue(subfield, field, catLang) {
120
118
  function handleMovies(value) {
121
119
  if (subfield.code === 'a' && ['130', '630', '730'].includes(field.tag)) {
122
120
  // MRA-614: "(elokuva, 2000)" => "(elokuva : 2000)""
123
- return value.replace(/\((elokuva), (19[0-9][0-9]|20[0-2][0-9])\)/u, '($1 : $2)'); // eslint-disable-line prefer-named-capture-group
121
+ return value.replace(/\((elokuva), (19[0-9][0-9]|20[0-2][0-9])\)/u, '($1 : $2)');
124
122
  }
125
123
  return value;
126
124
  }
@@ -157,7 +155,7 @@ function normalizeSubfieldValues(field, catLang) {
157
155
  if (!field.subfields[index].value) {
158
156
  return;
159
157
  }
160
- field.subfields[index].value = getNormalizedValue(subfield, field, catLang); // eslint-disable-line functional/immutable-data
158
+ field.subfields[index].value = getNormalizedValue(subfield, field, catLang);
161
159
  });
162
160
  return field;
163
161
  }
@@ -14,7 +14,7 @@ export default function () {
14
14
 
15
15
  function fix(record) {
16
16
  const res = {message: [], fix: [], valid: true};
17
- record.fields.forEach(f => fixField(f, record));
17
+ record.fields.forEach(f => fixField(f, record)); // eslint-disable-line array-callback-return
18
18
  return res;
19
19
  }
20
20
 
@@ -25,7 +25,7 @@ export default function () {
25
25
  validateField(field, res, record);
26
26
  });
27
27
 
28
- res.valid = !(res.message.length >= 1); // eslint-disable-line functional/immutable-data
28
+ res.valid = !(res.message.length >= 1);
29
29
  return res;
30
30
  }
31
31
 
@@ -38,13 +38,13 @@ export default function () {
38
38
  const normalizedField = fixField(clone(field), record);
39
39
  const mod = fieldToString(normalizedField);
40
40
  if (orig !== mod) { // Fail as the input is "broken"/"crap"/sumthing
41
- res.message.push(`FIXABLE: '${orig}' => '${mod}'`); // eslint-disable-line functional/immutable-data
41
+ res.message.push(`FIXABLE: '${orig}' => '${mod}'`);
42
42
  return;
43
43
  }
44
44
 
45
45
  /*
46
46
  if (fieldHasUnfixableStuff(field)) {
47
- res.message.push(`CAN'T BE FIXED AUTOMATICALLY: '${orig}'`); // eslint-disable-line functional/immutable-data
47
+ res.message.push(`CAN'T BE FIXED AUTOMATICALLY: '${orig}'`);
48
48
  return;
49
49
  }
50
50
  */
@@ -91,17 +91,17 @@ export default function () {
91
91
  if (!fieldIsBluray007(field)) {
92
92
  return;
93
93
  }
94
- //field.value = field.value.substring(0, 4) + 's' + field.value.substring(5); // eslint-disable-line functional/immutable-data
94
+ //field.value = field.value.substring(0, 4) + 's' + field.value.substring(5);
95
95
  //field.value = field.value.replace(/^(?:v...)s/u, `${1}v`); // eslint-disable-line functional/immutable-data, no-template-curly-in-string
96
- field.value = `${field.value.substring(0, 4)}v${field.value.substring(5)}`; // eslint-disable-line functional/immutable-data
96
+ field.value = `${field.value.substring(0, 4)}v${field.value.substring(5)}`;
97
97
  }
98
98
 
99
99
  function convert007DvdToBluray(field) {
100
100
  if (!fieldIsDvd007(field)) {
101
101
  return;
102
102
  }
103
- //field.value = field.value.replace(/^(?:v...)v/u, `${1}s`); // eslint-disable-line functional/immutable-data
104
- field.value = `${field.value.substring(0, 4)}s${field.value.substring(5)}`; // eslint-disable-line functional/immutable-data
103
+ //field.value = field.value.replace(/^(?:v...)v/u, `${1}s`);
104
+ field.value = `${field.value.substring(0, 4)}s${field.value.substring(5)}`;
105
105
  }
106
106
 
107
107
  function fixField(field, record) {
@@ -23,9 +23,9 @@ export default function () {
23
23
  async function fix(record) {
24
24
  const newFields = await getFields(record, defaultTags, []);
25
25
 
26
- newFields.forEach(nf => nvdebug(`Add new field '${fieldToString(nf)}'`, debug));
26
+ newFields.forEach(nf => nvdebug(`Add new field '${fieldToString(nf)}'`, debug)); // eslint-disable-line array-callback-return
27
27
 
28
- newFields.forEach(nf => record.insertField(nf));
28
+ newFields.forEach(nf => record.insertField(nf)); // eslint-disable-line array-callback-return
29
29
 
30
30
  const newFieldsAsStrings = newFields.map(f => fieldToString(f));
31
31
 
@@ -78,13 +78,11 @@ export default function () {
78
78
  async function deriveMissingFields(record, tag) {
79
79
  const pairlessFields = getPairlessFinnishAndSwedishFields(record, tag);
80
80
 
81
- /* eslint-disable */
82
81
  // Dunno how to handle loop+promise combo in our normal coding style. Spent half a day trying... (I reckon it takes like 2 minuts to do this properly...)
83
82
  let prefLabels = [];
84
83
  for (let i=0; i < pairlessFields.length; i += 1) {
85
84
  prefLabels[i] = await getPrefLabel(pairlessFields[i]);
86
85
  }
87
- /* eslint-enable */
88
86
 
89
87
  const missingFields = pairlessFields.map((f, i) => pairField(f, prefLabels[i]));
90
88
  return missingFields.filter(f => f);
@@ -176,7 +174,7 @@ export default function () {
176
174
  return termCache[uri];
177
175
  }
178
176
  const tmp = await getTermDataFromFinto(uri);
179
- termCache[uri] = tmp; // eslint-disable-line functional/immutable-data, require-atomic-updates
177
+ termCache[uri] = tmp;
180
178
  return tmp;
181
179
  }
182
180
 
@@ -1,6 +1,6 @@
1
1
  import createDebugLogger from 'debug';
2
2
 
3
- const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/typeOfDate-008'); // eslint-disable-line
3
+ const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/typeOfDate-008');
4
4
 
5
5
  export default function () {
6
6
  return {
@@ -24,12 +24,12 @@ export default function () {
24
24
 
25
25
  function fix(record) {
26
26
  // LDR/06=t ja 11-14=####, niin LDR/06 muutetaan s:ksi
27
- const [f008] = record.pop(/008/u); // eslint-disable-line functional/immutable-data
27
+ const [f008] = record.pop(/008/u);
28
28
  const c06 = f008.value.substring(6, 7);
29
29
  const c1114 = f008.value.substring(11, 15);
30
30
  // if 008 06 = s, and 11-14 = #### (not year/digits)
31
31
  if (c06 === 't' && !(/[0-9u]{4}/u).test(c1114)) {
32
- f008.value = `${f008.value.substring(0, 6)}s${f008.value.substring(7)}`; // eslint-disable-line functional/immutable-data
32
+ f008.value = `${f008.value.substring(0, 6)}s${f008.value.substring(7)}`;
33
33
  record.insertField(f008);
34
34
  return true;
35
35
  }
@@ -122,7 +122,7 @@ export default function () {
122
122
  field.subfields
123
123
  .filter(subfield => PATTERN.test(subfield.value))
124
124
  .forEach(subfield => {
125
- subfield.value = convert(subfield.value); // eslint-disable-line functional/immutable-data
125
+ subfield.value = convert(subfield.value);
126
126
  });
127
127
  });
128
128
  }
@@ -44,9 +44,9 @@ const licences = [
44
44
  ];
45
45
 
46
46
  function findSubfieldIndex(field, subfield) {
47
- subfield.nvtmp = 1; // eslint-disable-line functional/immutable-data
47
+ subfield.nvtmp = 1;
48
48
  const index = field.subfields.findIndex(sf => sf.nvtmp === 1);
49
- delete subfield.nvtmp; // eslint-disable-line functional/immutable-data
49
+ delete subfield.nvtmp;
50
50
  return index;
51
51
  }
52
52
 
@@ -69,9 +69,9 @@ function validUrlInSubfieldU(subfieldU, license) {
69
69
 
70
70
  function fixC(field, subfieldC) {
71
71
  // MELINDA-2431_
72
- subfieldC.code = 'f'; // eslint-disable-line functional/immutable-data
72
+ subfieldC.code = 'f';
73
73
  const index = findSubfieldIndex(field, subfieldC);
74
- field.subfields.splice(index + 1, 0, {'code': '2', 'value': 'cc'}); // eslint-disable-line functional/immutable-data
74
+ field.subfields.splice(index + 1, 0, {'code': '2', 'value': 'cc'});
75
75
  }
76
76
 
77
77
  function fieldHasOldCcLicense(field, fix) {
@@ -84,9 +84,9 @@ function fieldHasOldCcLicense(field, fix) {
84
84
  return false;
85
85
  }
86
86
  //nvdebug(` Found valid license`);
87
- if (fix) { // eslint-disable-line functional/no-conditional-statements
87
+ if (fix) {
88
88
  const subfieldsC = field.subfields.filter(sf => validLicenseInSubfieldC(sf, validLicense));
89
- subfieldsC.forEach(c => fixC(field, c));
89
+ subfieldsC.forEach(c => fixC(field, c)); // eslint-disable-line array-callback-return
90
90
  }
91
91
 
92
92
  return true;
package/src/urn.js CHANGED
@@ -45,7 +45,7 @@ export default function (isLegalDeposit = false, useMelindaTemp = true) {
45
45
  // We add the URN even if we're not getting the legalDeposit - where does this URN resolve?
46
46
  // We probably should not do these additions
47
47
 
48
- if (f856sUrn.length === 0) { // eslint-disable-line functional/no-conditional-statements
48
+ if (f856sUrn.length === 0) {
49
49
  const {code, value, generated} = await createURNSubfield(record);
50
50
 
51
51
  if (generated && useMelindaTemp) {
@@ -69,7 +69,9 @@ export default function (isLegalDeposit = false, useMelindaTemp = true) {
69
69
  });
70
70
 
71
71
  return true;
72
- } else if (isLegalDeposit) { // eslint-disable-line functional/no-conditional-statements
72
+ }
73
+
74
+ if (isLegalDeposit) {
73
75
 
74
76
  // We add here legal deposit information to all URN-f856s - we probably should not do this
75
77
  // We should add extra f856 URN / URNs for legal deposits that already have a open (non-legal-deposit) URN
@@ -78,16 +80,16 @@ export default function (isLegalDeposit = false, useMelindaTemp = true) {
78
80
 
79
81
  f856sUrn.forEach(f => {
80
82
  // Change phrase from old to new if field with old phrase is found
81
- if (f.subfields.some(sf => hasOld856LdPhrase(sf))) { // eslint-disable-line functional/no-conditional-statements
82
- f.subfields // eslint-disable-line functional/immutable-data
83
+ if (f.subfields.some(sf => hasOld856LdPhrase(sf))) {
84
+ f.subfields
83
85
  .find(sf => hasOld856LdPhrase(sf))
84
86
  .value = 'Käytettävissä vapaakappaletyöasemilla';
85
87
  }
86
88
 
87
89
  // Create subfields if necessary
88
90
  ldSubfields.forEach(ldsf => {
89
- if (!f.subfields.some(sf => sf.code === ldsf.code && sf.value === ldsf.value && !hasOld856LdPhrase(sf))) { // eslint-disable-line functional/no-conditional-statements
90
- f.subfields.push(ldsf); // eslint-disable-line functional/immutable-data
91
+ if (!f.subfields.some(sf => sf.code === ldsf.code && sf.value === ldsf.value && !hasOld856LdPhrase(sf))) {
92
+ f.subfields.push(ldsf);
91
93
  }
92
94
  });
93
95
  });
package/src/utils.js CHANGED
@@ -18,7 +18,7 @@ export function isElectronicMaterial(record) {
18
18
  }
19
19
 
20
20
  export function nvdebug(message, func = undefined) {
21
- if (func) { // eslint-disable-line functional/no-conditional-statements
21
+ if (func) {
22
22
  func(message);
23
23
  }
24
24
  //console.info(message); // eslint-disable-line no-console
@@ -55,11 +55,11 @@ export function recordToString(record) {
55
55
  }
56
56
 
57
57
  export function removeSubfield(record, tag, subfieldCode) {
58
- record.fields = record.fields.map(field => { // eslint-disable-line functional/immutable-data
58
+ record.fields = record.fields.map(field => {
59
59
  if (field.tag !== tag || !field.subfields) { // Don't procss irrelevant fields
60
60
  return field;
61
61
  }
62
- field.subfields = field.subfields.filter(sf => sf.code !== subfieldCode); // eslint-disable-line functional/immutable-data
62
+ field.subfields = field.subfields.filter(sf => sf.code !== subfieldCode);
63
63
  if (field.subfields.length === 0) {
64
64
  return false;
65
65
  }
@@ -68,12 +68,12 @@ export function removeSubfield(record, tag, subfieldCode) {
68
68
  }
69
69
 
70
70
  export function recordRemoveValuelessSubfields(record) {
71
- record.fields = record.fields.map(field => { // eslint-disable-line functional/immutable-data
71
+ record.fields = record.fields.map(field => {
72
72
  if (!field.subfields) { // Keep control fields
73
73
  return field;
74
74
  }
75
75
  // Remove empty subfields from datafields:
76
- field.subfields = field.subfields.filter(sf => sf.value); // eslint-disable-line functional/immutable-data
76
+ field.subfields = field.subfields.filter(sf => sf.value);
77
77
 
78
78
  if (field.subfields && field.subfields.length === 0) {
79
79
  return false; // Return false instead of a field if field has no subfields left. These will soon be filtered out.
@@ -99,7 +99,7 @@ export function fieldsToString(fields) {
99
99
  }
100
100
 
101
101
  export function nvdebugFieldArray(fields, prefix = ' ', func = undefined) {
102
- fields.forEach(field => nvdebug(`${prefix}${fieldToString(field)}`, func));
102
+ fields.forEach(field => nvdebug(`${prefix}${fieldToString(field)}`, func)); // eslint-disable-line array-callback-return
103
103
  }
104
104
 
105
105
  export function isControlSubfieldCode(subfieldCode) {
@@ -146,7 +146,7 @@ export function fieldHasNSubfields(field, subfieldCode/*, subfieldValue = null*/
146
146
  }
147
147
 
148
148
  export function removeCopyright(value) {
149
- return value.replace(/^(?:c|p|©|℗|Cop\. ?) ?((?:1[0-9][0-9][0-9]|20[012][0-9])\.?)$/ui, '$1'); // eslint-disable-line prefer-named-capture-group
149
+ return value.replace(/^(?:c|p|©|℗|Cop\. ?) ?((?:1[0-9][0-9][0-9]|20[012][0-9])\.?)$/ui, '$1');
150
150
  }
151
151
 
152
152
  function isNonStandardNonrepeatableSubfield(tag, subfieldCode) {
@@ -217,7 +217,7 @@ export function marc21GetTagsLegalInd2Value(tag) {
217
217
  }
218
218
 
219
219
  export function nvdebugSubfieldArray(subfields, prefix = ' ', func = undefined) {
220
- subfields.forEach(subfield => nvdebug(`${prefix}${subfieldToString(subfield)}`, func));
220
+ subfields.forEach(subfield => nvdebug(`${prefix}${subfieldToString(subfield)}`, func)); // eslint-disable-line array-callback-return
221
221
  }
222
222
 
223
223
  export function subfieldsAreIdentical(subfieldA, subfieldB) {
package/.eslintignore DELETED
@@ -1 +0,0 @@
1
- coverage/