lib/validate-bemjson.js
function validateBemJson(bemJson, fileName) {
  let errors = [];

  if (Array.isArray(bemJson)) {
    bemJson.forEach((childBemJson) => {
      errors = errors.concat(validateBemJson(childBemJson, fileName));
    });
  } else if (bemJson instanceof Object) {
    Object.keys(bemJson).forEach((key) => {
      const childBemJson = bemJson[key];
      errors = errors.concat(validateBemJson(childBemJson, fileName));
    });

    errors = errors.concat(validateBemJsonNode(bemJson, fileName)); // TODO
  }
  // TODO
  return errors;
}
function validateBemJson(bemJson, fileName) {
  let errors = [];

  if (Array.isArray(bemJson)) {
    bemJson.forEach((childBemJson) => {
      errors = errors.concat(validateBemJson(childBemJson, fileName));
    });
  } else if (bemJson instanceof Object) {
    Object.keys(bemJson).forEach((key) => {
      const childBemJson = bemJson[key];
      errors = errors.concat(validateBemJson(childBemJson, fileName));
    });

    errors = errors.concat(validateBemJsonNode(bemJson, fileName)); // TODO
  }
  // TODO
  return errors;
}
function validateBemJson ( bemJson , fileName ) { let errors = [ ] ; if ( Array . isArray ( bemJson ) ) { bemJson . forEach ( ( childBemJson ) => { errors = errors . concat ( validateBemJson ( childBemJson , fileName ) ) ; } ) ; } else if ( bemJson instanceof Object ) { Object . keys ( bemJson ) . forEach ( ( key ) => { const childBemJson = bemJson [ key ] ; errors = errors . concat ( validateBemJson ( childBemJson , fileName ) ) ; } ) ; errors = errors . concat ( validateBemJsonNode ( bemJson , fileName ) ) ; // TODO } // TODO return errors ; }
Validate BEM JSON

@param {Object} bemJson
@param {String} fileName
@return {Array} of validation errors
Validate BEM JSON