UNPKG

yoastseo

Version:

Yoast client-side content analysis

40 lines (37 loc) 1.99 kB
"use strict"; 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