bifocal/node_modules/gscan/lib/checks/030-assets.js

45 lines
1.2 KiB
JavaScript

const _ = require('lodash');
const spec = require('../specs');
const versions = require('../utils').versions;
const checkAssets = function checkAssets(theme, options) {
const checkVersion = _.get(options, 'checkVersion', versions.default);
const ruleSet = spec.get([checkVersion]);
let ruleToCheck = 'GS030-ASSET-REQ';
let failures = [];
let assetMatch;
_.filter(theme.files, {ext: '.hbs'}).forEach(function (template) {
try {
while ((assetMatch = ruleSet.rules[ruleToCheck].regex.exec(template.content)) !== null) {
failures.push({ref: template.file, message: assetMatch[2]});
}
} catch (err) {
// ignore
}
});
if (failures.length > 0) {
theme.results.fail[ruleToCheck] = {failures: failures};
} else {
theme.results.pass.push(ruleToCheck);
}
ruleToCheck = 'GS030-ASSET-SYM';
failures = theme
.files
.filter(f => f.symlink)
.map(f => ({ref: f.file}));
if (failures.length > 0) {
theme.results.fail[ruleToCheck] = {failures: failures};
} else {
theme.results.pass.push(ruleToCheck);
}
return theme;
};
module.exports = checkAssets;