yoastseo
Version:
Yoast client-side content analysis
40 lines (37 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = checkVerbStemModifications;
var _buildFormRule = _interopRequireDefault(require("../../../../../languageProcessing/helpers/morphology/buildFormRule.js"));
var _createRulesFromArrays = _interopRequireDefault(require("../../../../../languageProcessing/helpers/morphology/createRulesFromArrays.js"));
var _searchAndReplaceWithOneRegex = _interopRequireDefault(require("../../../../../languageProcessing/helpers/regex/searchAndReplaceWithOneRegex"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* Checks whether a given word is a verb to which certain stem modifications need to be applied.
*
* @param {string} word The word to check.
* @param {Object} morphologyDataES The Spanish morphology data.
*
* @returns {string|null} The modified stem if any modifications apply or null.
*/
function checkVerbStemModifications(word, morphologyDataES) {
const verbStemModifications = morphologyDataES.verbStemModifications;
const quToCReplacement = (0, _searchAndReplaceWithOneRegex.default)(word, verbStemModifications.quToC);
// This modification is checked separately because it's sometimes combined wit the dipththong modification.
if (quToCReplacement) {
// Check diphthong replacement.
const ueToOReplacement = (0, _searchAndReplaceWithOneRegex.default)(quToCReplacement, verbStemModifications.ueToOSimple);
if (ueToOReplacement) {
return ueToOReplacement;
}
return quToCReplacement;
}
// All of the modifications checked in this step are mutually exclusive.
const verbWithStemReplacement = (0, _buildFormRule.default)(word, (0, _createRulesFromArrays.default)([...verbStemModifications.stemModifications, verbStemModifications.ueToO]));
if (verbWithStemReplacement) {
return verbWithStemReplacement;
}
return null;
}
//# sourceMappingURL=checkVerbStemModifications.js.map