Eventstore typescript / ES6 javascript client lib
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 = const es = uri: 'tcp://admin:changeit@127.0.0.1:1113'await es const eventA = 'EventA' some: 'string data' num : 1await es const eventB = 'EventB' text: 'other string' count : 2 eventBcorrelationId = eventAidawait es const eventC = 'EventC'const eventD = 'EventD' await es const events = await es for { console} await es
For full documentation please visit: https://sebastianwessel.github.io/eventstore-ts-client/
Building
To build this lib just clone this repo and run:
npm installnpm 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
ToDo
- catch-up subscription
- ACL handling
- code review and cleanup
- improve tests and documentation
Apache 2.0 License
see LICENSE