Ensure frequency values are always numbers (#1943)

This commit is contained in:
toasted-nutbread 2021-09-26 11:08:21 -04:00 committed by GitHub
parent 9899727d7d
commit c15683d206
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 5 deletions

View File

@ -17,7 +17,7 @@
"description": "Type of data. \"freq\" corresponds to frequency information." "description": "Type of data. \"freq\" corresponds to frequency information."
}, },
{ {
"type": ["string", "number"], "type": ["number"],
"description": "Data for the character." "description": "Data for the character."
} }
] ]

View File

@ -28,7 +28,7 @@
{ {
"oneOf": [ "oneOf": [
{ {
"type": ["string", "number"], "type": ["number"],
"description": "Frequency information for the term." "description": "Frequency information for the term."
}, },
{ {
@ -44,7 +44,7 @@
"description": "Reading for the term." "description": "Reading for the term."
}, },
"frequency": { "frequency": {
"type": ["string", "number"], "type": ["number"],
"description": "Frequency information for the term." "description": "Frequency information for the term."
} }
} }

View File

@ -866,7 +866,7 @@ class Translator {
dictionaryIndex, dictionaryIndex,
dictionaryPriority, dictionaryPriority,
hasReading, hasReading,
frequency this._convertFrequency(frequency)
)); ));
} }
} }
@ -920,7 +920,7 @@ class Translator {
dictionaryIndex, dictionaryIndex,
dictionaryPriority, dictionaryPriority,
character, character,
data this._convertFrequency(data)
)); ));
} }
break; break;
@ -971,6 +971,18 @@ class Translator {
}); });
} }
_convertFrequency(value) {
switch (typeof value) {
case 'number':
return value;
case 'string':
value = Number.parseFloat(value);
return Number.isFinite(value) ? value : 0;
default:
return 0;
}
}
// Helpers // Helpers
_getNameBase(name) { _getNameBase(name) {