Version 1
[yaffs-website] / node_modules / uncss / node_modules / har-validator / bin / har-validator
diff --git a/node_modules/uncss/node_modules/har-validator/bin/har-validator b/node_modules/uncss/node_modules/har-validator/bin/har-validator
new file mode 100755 (executable)
index 0000000..fd7cc0d
--- /dev/null
@@ -0,0 +1,56 @@
+#!/usr/bin/env node
+
+'use strict'
+
+var chalk = require('chalk')
+var cmd = require('commander')
+var fs = require('fs')
+var path = require('path')
+var pkg = require('../package.json')
+var Promise = require('pinkie-promise')
+var validate = require('..')
+var ValidationError = require('../lib/error')
+
+cmd
+  .version(pkg.version)
+  .usage('[options] <files ...>')
+  .option('-s, --schema [name]', 'validate schema name (log, request, response, etc ...)')
+  .parse(process.argv)
+
+if (!cmd.args.length) {
+  cmd.help()
+}
+
+cmd.args.map(function (fileName) {
+  var file = chalk.yellow.italic(path.basename(fileName))
+
+  new Promise(function (resolve, reject) {
+    fs.readFile(fileName, function (err, data) {
+      return err === null ? resolve(data) : reject(err)
+    })
+  })
+
+    .then(JSON.parse)
+
+    .then(cmd.schema ? validate[cmd.schema] : validate)
+
+    .then(function (data) {
+      console.log('%s [%s] is valid', chalk.green('✓'), file)
+    })
+
+    .catch(function (err) {
+      if (err instanceof SyntaxError) {
+        return console.error('%s [%s] failed to read JSON: %s', chalk.red('✖'), file, chalk.red(err.message))
+      }
+
+      if (err instanceof ValidationError) {
+        err.errors.forEach(function (details) {
+          console.error('%s [%s] failed validation: (%s: %s) %s', chalk.red('✖'), file, chalk.cyan.italic(details.field), chalk.magenta.italic(details.value), chalk.red(details.message))
+        })
+
+        return
+      }
+
+      console.error('%s [%s] an unknown error has occured: %s', chalk.red('✖'), file, chalk.red(err.message))
+    })
+})