implemented small validation pipeline that will iterate through content sources

build-validation
David Tookey 5 years ago
parent 3d5ec19de6
commit bede5ae178

@ -3,6 +3,8 @@ const del = require('del');
const ts = require('gulp-typescript');
const exec = require('child_process').exec;
const sass = require('gulp-sass');
const fs = require('fs');
const path = require('path');
sass.compiler = require('node-sass');
let tsSource = ts.createProject('tsconfig.json')
@ -11,8 +13,34 @@ function clean(cb) {
cb();
}
function validateConfigSources(){
function validateConfigSources(cb) {
let confBase = "src/assets/conf/";
let configsToCheck = ["resources-landing-page.json"];
for (let i = 0, l = configsToCheck.length; i < l; i++) {
let currConfig = configsToCheck[i];
let configContent = fs.readFileSync(path.join(confBase, currConfig));
let conf = JSON.parse(configContent.toString());
let keys = Object.keys(conf);
for (let j = 0, m = keys.length; j < m; j++) {
let key = keys[i];
let content = conf[key];
let rules = resourceLandingPageRules[key];
let ruleKeys = Object.keys(rules);
for (let k = 0, n = ruleKeys.length; k < n; k++) {
let rule = ruleKeys[k];
let ruleValidator = rules[rule];
for (let x = 0, y = content.length; x < y; x++) {
let renderObj = content[x];
let ruleSubject = renderObj[rule];
let validResults = ruleValidator(ruleSubject, currConfig, rule);
if (null !== validResults) {
cb(validResults);
}
}
}
}
}
cb();
}
function conf() {
@ -63,8 +91,23 @@ function dependencies(cb) {
});
}
let stringLengthRule = function (str, fileName, rulename) {
let maxLen = 125;
if (str.length > maxLen) {
return Error(`Content too long in ${fileName}->${rulename}! Expected ${maxLen} characters, got ${str.length} "${str}"`)
}
}
let resourceLandingPageRules = {
"grid-container": {
"description": stringLengthRule
}
}
exports.clean = clean;
exports.default = series(conf, style, scss, root, pkg, typescript, dependencies);
exports.default = series(validateConfigSources, conf, style, scss, root, pkg, typescript, dependencies);
exports.runFast = series(conf, style, scss, root, pkg)
exports.runFast = series(validateConfigSources, conf, style, scss, root, pkg)
Loading…
Cancel
Save