Skip to content
Eventstore javascript client library written in typescript
JavaScript TypeScript Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
manual
scripts
src
test
.esdoc.json
.eslintignore
.eslintrc.js
.gitignore
.npmignore
.nycrc.json
.prettierrc
.prettierrc.js
.travis.yml
Dockerfile
LICENSE
README.md
codecov.yml
package-lock.json
package.json
sonar-project.properties
tsconfig.json

README.md

Eventstore typescript / ES6 javascript client lib

License Build Status Quality Gate Status Coverage Lines of Code

Security Rating Reliability Rating Maintainability Rating Vulnerabilities doc coverage

Eventstore node.js javascript client library written in typescript with ES6 async/await syntax.

This repository is in BETA status

Main focus on this lib are:

  • available for typescript
  • available for ES6 with async/await syntax
  • well documented
  • clean code
  • proper code readability
  • proper testing
  • nice error handling

Documentation

Full documentation is available at https://sebastianwessel.github.io/eventstore-ts-client/

Requirements

You will need to have node.js version >=10 installed to use this lib because it's based on async iterators.
It's tested against eventstore version 5, but should also work on lower versions in general.
Expect some shortcut function for accessing standard projections which are not part of lower eventstore versions.

Installation

Installation is as simple as most packages.
Just install package in your projects root with:

npm i --save eventstore-ts-client

Quick-Start

const {Eventstore, Event} = require('eventstore-ts-client)
const es = new Eventstore({
  uri: 'tcp://admin:changeit@127.0.0.1:1113'
})
await es.connect()


const eventA = new Event('EventA',{
  some: 'string data',
  num : 1
})
await es.atStream('mystream').append(eventA)

const eventB = new Event('EventB',{
  text: 'other string',
  count : 2
})

eventB.correlationId = eventA.id
await es.atStream('mystream').append(eventB)

const eventC = new Event('EventC')
const eventD = new Event('EventD')

await es.atStream('mystream').append([eventC, eventD])

const events = await es
      .stream('mystream')
      .walkStreamForward()

for await (const event of events) {
  console.log(event.name)
}

await es.close()

For full documentation please visit: https://sebastianwessel.github.io/eventstore-ts-client/

Building

To build this lib just clone this repo and run:

npm install
npm run build

Maybe you need to change file attributes of scripts inside of scripts/ folder to be executable

Test lib

eventstore-ts-client tests are heavily based on integration tests.

Test are running against a 3 node eventstore cluster which will configured and filled with some test data and settings.
You will need to have docker installed on your machine to be able to run tests.
The setup contains a script which does all stuff for you - just type:

npm run test

Running tests will also generate some code coverage report to be used in tools like sonarqube

Apache 2.0 License

see LICENSE

You can’t perform that action at this time.