UNPKG

feed-validator

Version:

Simple validator for RSS, Atom or opensearch.xml that using validator.w3.org/feed and plugins

51 lines (42 loc) 1.51 kB
#!/usr/bin/env node /** * @file * Run validation by CLI */ var Q = require('q'); var _ = require('lodash'); var getOptions = require('../actions/cli/get-options'); var suppressMessages = require('../actions/suppress'); var validateByPlugins = require('../actions/validate-by-plugins'); var validateByW3c = require('../actions/validate-by-w3c'); var getReporter = require('../reporter'); function main() { getOptions() .then(function (options) { return Q.all([ {options: options}, validateByW3c(options.url) ]); }) .then(function (data) { var ctx = data[0]; var validationResult = data[1]; var pluginsResult = validateByPlugins(validationResult.feedJson, ctx.options); validationResult.isValid = validationResult.isValid && pluginsResult.isValid; _.each(['errors', 'warnings', 'info'], function (listName) { [].push.apply(validationResult[listName], pluginsResult[listName]); }); return [ctx, validationResult]; }) .then(function (data) { var ctx = data[0]; var validationData = suppressMessages(data[1], ctx.options); var reporter = getReporter(ctx.options.reporter); console.log(reporter(validationData, ctx.options)); process.exit(validationData.isValid ? 0 : 1); }) .done(); } if (module === require.main) { main(); }