Source: lib/json.js

/*jshint laxcomma: true, smarttabs: true, node:true, esnext:true*/
'use strict';
/**
 * JSON helpers
 * @module skyring/lib/json
 * @author Eric Satterwhite
 * @since 1.0.0
 */

/**
 * Composite JSON ojbect
 * @typedef {Object} Result
 * @property {?Error} [error=null] An error if json parsing faile
 * @property {Object} value the result of Json parsing
 **/

/**
 * Wrpper around try/catch of JSON parsing
 * @method module:skyring/lib/json
 * @param {String} json A JSON string to parse
 * @return {module:skyring/lib/json~Result}
 **/
exports.parse = function parse(json) {
  if (!json) return {error: null, value: {}};
  try {
    return { error: null, value: JSON.parse(json) };
  } catch( e ) {
    return { error: e, value: null };
  }
};