New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

memory-blob-store

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

memory-blob-store - npm Package Compare versions

Comparing version

to
4.0.0

@@ -28,7 +28,8 @@ const stream = require('stream');

const ws = new stream.Writable();
self.readers[key] = self.readers[key] || {};
if (self.writing[key]) {
self._closeReaders(key);
}
self.readers[key] = {};
self.readers[key] = [];
self.writing[key] = true;

@@ -58,4 +59,4 @@

function _writeToReaders(key, buffer) {
for (let i = 0; this.readers[key].length; i += 1) {
this.readers[i].push(buffer);
for (let i = 0; i < this.readers[key].length; i += 1) {
this.readers[key][i].push(buffer);
}

@@ -66,2 +67,6 @@ }

function _closeReaders(key) {
if(!this.readers[key]) {
return null;
}
for (let i = 0; this.readers[key].length; i += 1) {

@@ -102,11 +107,15 @@ this.readers[key][i].push(null);

const rs = new stream.Readable();
self.readers[key] = self.readers[key] || {};
rs.push(self.store[key]);
if (!self.writing[key]) {
rs.push(null);
delete self.readers[key];
} else {
self.readers[key].push(rs);
}
if (!self.store[key]) {
timers.setImmediate(rs.emit.bind(rs), 'error', new Error('Blob does not exist.'));
}
rs._read = function noop() {};

@@ -113,0 +122,0 @@ return rs;

{
"name": "memory-blob-store",
"version": "3.0.0",
"version": "4.0.0",
"description": "An in-memory blob store",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -19,1 +19,24 @@ const abstractBlobTests = require('abstract-blob-store/tests');

abstractBlobTests(test, common);
test('handles multiple readers during write stream', function(t) {
var key = 'foobar';
var data = ['x', 'y', 'z'];
var index = 0;
t.plan(data.length * 2);
setup(null, function (e, store) {
var ws = store.createWriteStream(key);
var rs1 = store.createReadStream(key);
var rs2 = store.createReadStream(key);
rs1.on('data', function(d) {
t.equal(d.toString(), data[index | 0], 'Received data during write');
index += .5;
});
rs2.on('data', function(d) {
t.equal(d.toString(), data[index | 0], 'Received data during write');
index += .5;
});
for(var i = 0; i < data.length; i++) {
ws.write(data[i]);
}
});
});