code: function parseJSON (file) {
      return new Promise(function (resolve, reject) {
        var data = file.data;
        if (Buffer.isBuffer(data)) {
          data = data.toString();
        }
  
        if (typeof data === "string") {
          if (data.trim().length === 0) {
            resolve(undefined);  // This mirrors the YAML behavior
          }
          else {
            resolve(JSON.parse(data));
          }
        }
        else {
          // data is already a JavaScript value (object, array, number, null, NaN, etc.)
          resolve(data);
        }
      });
    }
docs: Parses the given file as JSON
  
  @param {object} file           - An object containing information about the referenced file
  @param {string} file.url       - The full URL of the referenced file
  @param {string} file.extension - The lowercased file extension (e.g. ".txt", ".html", etc.)
  @param {*}      file.data      - The file contents. This will be whatever data type was returned by the resolver
  @returns {Promise}