'use strict';
var Promise = require('es6-promise').Promise;
var errors = require('common-errors');
var path = require('path');
var fs = require('fs');

module.exports = function (value) {
  return new Promise(function(resolve, reject) {
    if (!value) {
      reject(new errors.ArgumentNullError('value'));
    }
    ['path'].forEach(function (key) {
      if(!value.hasOwnProperty(key) || !value[key]) {
        reject(new errors.ArgumentNullError(key));
      }
    });

    var filePath = path.normalize(value['path']);
    fs.readFile(filePath, 'utf8', function (error, data) {
      if (error) {
        reject(new errors.io.FileLoadError(filePath));
      }
      try {
        var contents = JSON.parse(data);
      } catch (error) {
        reject(new errors.Error('JSON.parse', error));
      }
      resolve(contents);
    });
  });
};

@@ -250,31 +250,30 @@
 ue) %7B%0A      
-reject(
+throw 
 new errors.A
@@ -297,17 +297,16 @@
 'value')
-)
 ;%0A    %7D%0A
@@ -397,39 +397,38 @@
 key%5D) %7B%0A        
-reject(
+throw 
 new errors.Argum
@@ -444,17 +444,16 @@
 ror(key)
-)
 ;%0A      
@@ -560,18 +560,16 @@
 ion (err
-or
 , data) 
@@ -579,26 +579,24 @@
      if (err
-or
 ) %7B%0A        
@@ -645,25 +645,34 @@
 h));%0A      %7D
-%0A
+ else %7B%0A  
       try %7B%0A
@@ -671,16 +671,18 @@
   try %7B%0A
+  
         
@@ -720,16 +720,18 @@
 ;%0A      
+ 
+ 
 %7D catch 
@@ -736,24 +736,26 @@
 h (error) %7B%0A
+  
         reje
@@ -799,26 +799,30 @@
 or));%0A      
-%7D%0A
+  %7D%0A  
       resolv
@@ -834,16 +834,24 @@
 tents);%0A
+      %7D%0A
     %7D);%0A

use if else block