bifocal/node_modules/gscan/lib/checks/070-theme-translations.js

39 lines
959 B
JavaScript

const {get} = require('lodash');
const spec = require('../specs');
const versions = require('../utils').versions;
module.exports = function checkTranslations(theme, options) {
const ruleToCheck = 'GS070-VALID-TRANSLATIONS';
const checkVersion = get(options, 'checkVersion', versions.default);
let ruleSet = spec.get([checkVersion]);
const failures = [];
if (!(ruleToCheck in ruleSet.rules)) {
return theme;
}
for (const file of theme.files) {
if (!file.file.match(/locales[/\\].*\.json$/)) {
continue;
}
try {
JSON.parse(file.content);
} catch (error) {
failures.push({
ref: file.file,
message: 'Unable to parse'
});
}
}
if (failures.length > 0) {
theme.results.fail[ruleToCheck] = {failures};
} else {
theme.results.pass.push(ruleToCheck);
}
return theme;
};