level-blobs
Advanced tools
Comparing version 0.1.4 to 0.1.5
10
index.js
@@ -42,3 +42,3 @@ var Writable = require('readable-stream/writable'); | ||
var reservations = {}; | ||
var mutateBlock = function(key, offset, block, cb) { | ||
var mutateBlock = function(key, offset, block, append, cb) { | ||
var release = function() { | ||
@@ -51,3 +51,3 @@ if (!--reservations[key].locks) delete reservations[key]; | ||
if (!r.block && offset + block.length < blockSize) { | ||
if (!r.block && !offset) { | ||
r.block = block; | ||
@@ -62,2 +62,4 @@ cb(null, r.block, release); | ||
block.copy(r.block, offset); | ||
if (!append && offset + block.length < r.block.length) r.block = r.block.slice(0, offset+block.length); | ||
cb(null, r.block, release); | ||
@@ -160,6 +162,6 @@ }; | ||
if (!offset && block.length === blockSize) return append(block, false, cb); | ||
if (!this.append) return append(block, false, cb); | ||
if (!offset && !this.append) return append(block, false, cb); | ||
// partial write | ||
mutateBlock(key, offset, block, function(err, block, release) { | ||
mutateBlock(key, offset, block, this.append, function(err, block, release) { | ||
if (err) return cb(err); | ||
@@ -166,0 +168,0 @@ append(block, true, function(err) { |
{ | ||
"name": "level-blobs", | ||
"version": "0.1.4", | ||
"version": "0.1.5", | ||
"description": "Save binary blobs in level and stream then back", | ||
@@ -5,0 +5,0 @@ "repository": "git://github.com/mafintosh/level-blobs.git", |
16567
489