forward zlib decompression errors instead of failing hard

This commit is contained in:
Konstantin Käfer
2011-05-12 16:24:40 -04:00
parent f92d754816
commit 9cb9ad771d
+15 -10
View File
@@ -231,16 +231,21 @@ MBTiles.prototype.grid = function(x, y, z, callback) {
function(err, row, rows) { function(err, row, rows) {
if (err) return callback(err); if (err) return callback(err);
if (!row || !row.grid) return callback('Grid does not exist'); if (!row || !row.grid) return callback('Grid does not exist');
var grid = zlib.inflate(
!Buffer.isBuffer(row.grid) try {
? new Buffer(row.grid, 'binary') var grid = zlib.inflate(
: row.grid !Buffer.isBuffer(row.grid)
).toString(); ? new Buffer(row.grid, 'binary')
var data = rows.reduce(function(memo, r) { : row.grid
memo[r.key_name] = JSON.parse(r.key_json); ).toString();
return memo; var data = rows.reduce(function(memo, r) {
}, {}); memo[r.key_name] = JSON.parse(r.key_json);
callback(null, _(JSON.parse(grid)).extend({ data: data })); return memo;
}, {});
callback(null, _(JSON.parse(grid)).extend({ data: data }));
} catch(err) {
callback(err);
}
} }
); );
}; };