18F/hubot-slack-github-issues

View on GitHub
config-validator/index.js

Summary

Maintainability
A
25 mins
Test Coverage
/* eslint-env browser */

'use strict';

var Config = require('../lib/config');

var NBSP_REGEX = / {2}/g;

window.validateConfig = function() {
  var configInput = document.getElementById('config-input'),
      resultText = document.getElementById('result-text'),
      resultMsg = '';

  try {
    if (configInput.value.length !== 0) {
      new Config(JSON.parse(configInput.value));
      resultMsg = 'The configuration is valid.';
    } else {
      resultMsg = 'Please enter a JSON configuration object.';
    }
  } catch (err) {
    if (err instanceof SyntaxError) {
      resultMsg = 'The JSON failed to parse: ' + err.message;
    } else {
      err.message.split('\n').forEach(function(item) {
        resultMsg = resultMsg + item.replace(NBSP_REGEX, '  ') +
          '<br/>';
      });
    }
  }
  resultText.innerHTML = '<p>' + resultMsg + '</p>';
};