site-validator-cli
Version:
A command line tool that takes a URL or a file, then uses html-validator (a wrapper for https://validator.w3.org/nu/) to validate each page.
31 lines (28 loc) • 1.44 kB
JavaScript
const { existsSync, readFileSync } = require('fs')
const validateOutput = require('./validate-output')
const { cyanOnBlack } = require('../clc')
const getResultText = require('../console-texts/get-result-text')
const getSummaryText = require('../console-texts/get-summary-text')
const exit = require('../exit')
module.exports = (path) => {
path += '.json'
if (existsSync(path)) {
var output = JSON.parse(readFileSync(path, 'utf-8').toString())
if (!validateOutput(output)) {
exit(`File ${path} is not a valid report`, true)
} else {
console.log(`\nReport for ${cyanOnBlack(output.url)} (${output.pages.length} pages)`)
console.log(`Quiet Mode: ${cyanOnBlack(output.quiet)}\n`)
console.log('═════════════════════════════════════════════════════════════\n')
for (const result of [].concat(output.results.passed, output.results.failed)) {
console.log(getResultText(result, true))
}
console.log('═════════════════════════════════════════════════════════════')
console.log(getSummaryText(output.url, output.results.failed))
process.exit(0)
}
} else {
exit(`File ${path} not found!`, true)
}
}