UNPKG

@criticalmanufacturing/dev-i18n-transform

Version:
45 lines 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const validator_interface_1 = require("./validator.interface"); const util_1 = require("../util"); class DuplicatedTranslationsValidator { constructor(pack) { this._pack = pack; } /** * Run the validator * * @returns A list of validation results. */ validate() { let knownTranslations = new Map(); let validationResults = []; this._pack.files.forEach((file) => { file.messages.forEach((message) => { let translatedMessage = message.getTranslation(util_1.default.defaultLanguage); // skip null translations if (!translatedMessage) return; // skip literal translations - they don't need to be validated if (translatedMessage.isLiteral) return; if (knownTranslations.has(translatedMessage.text)) { validationResults.push({ file: file, type: validator_interface_1.ValidationResultType.Error, message: `Duplicated resource '${translatedMessage.text}' for ${util_1.default.defaultLanguage}`, col: translatedMessage.column, line: translatedMessage.line }); knownTranslations.set(translatedMessage.text, knownTranslations.get(translatedMessage.text) + 1); } else { knownTranslations.set(translatedMessage.text, 1); } }); }); return validationResults; } } exports.DuplicatedTranslationsValidator = DuplicatedTranslationsValidator; //# sourceMappingURL=duplicatedTranslations.validator.js.map