Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

geteventstore-range

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

geteventstore-range

A small geteventstore-promise extension to retrieve events ranges from EventStore

latest
Source
npmnpm
Version
0.1.2
Version published
Maintainers
1
Created
Source

geteventstore-range

A small geteventstore-promise extension to retrieve events ranges from EventStore.

Use along with geteventstore-promise to enrich your events queries.

Very useful for snapshots, or when you don't know where your stream end but you know where you want to begin to read. Or vice-versa.

geteventstore-range abstracts the effort to load very long streams by retrieving it in many reasonable chunks (you define the size, that is the number of events to load on every request). It does it thanks to the geteventstore-promise eventEnumerator plus some own logic. It always try to be as lazy as possible about database hits, in an optimistic way.

Installation

At the command-line, install geteventstore-range AND geteventstore-promise:

npm install geteventstore-range geteventstore-promise

Usage

In your Node.js application, inject a EventStore client into the GES Range object:


var eventstore = require('geteventstore-promise');
var EventStoreRange = require('geteventstore-range');

var client = eventstore.tcp({
    hostname: 'localhost',
    port: 1113,
    credentials: {
        username: 'admin',
        password: 'changeit'
    }
});

var esRange = new EventStoreRange(client);

Methods

There is only one method available, with different arguments

getStreamRange

If you want to retrieve from start to a defined event number:


esRange.getStreamRange('MyStreamName', 'start', 42, function(error, response){
  console.log(error, response);
});

If you want to retrieve from a defined event number to the end of the stream:


esRange.getStreamRange('MyStreamName', 42, 'end', function(error, response){
  console.log(error, response);
});

If you just want all the stream:


esRange.getStreamRange('MyStreamName', 'start', 'end', function(error, response){
  console.log(error, response);
});

At the moment there is no option of the range start and end to be both numbers. It wasn't needed when i develop this module, but i may implement it in the future. Or, who knows, you can help me with it!

Range Tolerance

If the range numbers you define are out of the real stream size, the method will not crash or loop forever. It will return de available streams when it is possible, or return an out of range error.

Tests

Some basic tests are implemented, using Mocha. To run them type in your terminal:

EVENTSTORE_HOST="localhost" EVENTSTORE_PORT="1113" EVENTSTORE_USER="admin" EVENTSTORE_PASS="changeit" npm test

Keywords

eventstore

FAQs

Package last updated on 23 Jun 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts