code: function extract_to_sync(_path, jszip) {
  
      var extraction_path = _path === null ? "./" : path.normalize(_path);
      if(extraction_path[extraction_path.length - 1] !== path.sep) {
          extraction_path += path.sep;
      }
  
      // make sure that the extraction path points to a existing directory
      var stats;
      try { stats = fs.statSync(extraction_path); }
      catch (err) { throw new Error(extraction_path + " doesn't exist"); }
      if (!stats.isDirectory())
          throw new Error(extraction_path + " is not a directory");
  
      // sort out the unzipped file to directories and files
      var dirs = [];
      var files = [];
      for (var name in jszip.files) {
  
          var entry = jszip.files[name];
  
          if (entry.dir)
              dirs.push(name);
          else
              files.push(name);
      }
  
      // sort the directories ascendingy by level
      dirs.sort(function (a, b) {
          function dir_sep_count(dir) { return (dir.match(/\//g) || []).length; }
  
          return dir_sep_count(a) - dir_sep_count(b);
      });
  
  
      // create the directories
      dirs.forEach(function (dir) {
          try {
              var stats = fs.statSync(extraction_path + dir);
              if(!stats.isDirectory()) {
                  throw new Error("!dir");
              }
          }
          catch(err) {
              if(err.code === "ENOENT" || err.message === "!dir") {
                  fs.mkdirSync(extraction_path + dir);
              }
              else {
                  throw err;
              }
          }
      });
  
      // write the files
      files.forEach(function (file) {
  
          var data = jszip.file(file).asNodeBuffer();
  
          fs.writeFileSync(extraction_path + file, data);
      });
  
  }
docs: /*
  extracts an unzipped file to the disk synchrnously
  @param _path {String}: extraction path
  @param jszip {JSZip}: the jszip object containg the unzipped file