From 4130ab646c5306651ff51ebc7469ab82f73c0403 Mon Sep 17 00:00:00 2001 From: Paul Date: Thu, 20 Apr 2017 19:32:53 -0700 Subject: [PATCH] Refactor samples --- samples/simple.js | 81 ++++++++++++----------- samples/store-event.js | 85 ++++++++++++++----------- samples/subscribe-all-events.js | 81 +++++++++++------------ samples/subscribe-catchup-all-events.js | 78 +++++++++++------------ 4 files changed, 170 insertions(+), 155 deletions(-) diff --git a/samples/simple.js b/samples/simple.js index 5b28b8a..cc7381f 100644 --- a/samples/simple.js +++ b/samples/simple.js @@ -1,39 +1,46 @@ -var client = require('../src/client'); -var uuid = require('uuid'); +const client = require("eventstore-node") +const uuid = require("uuid") -var settings = { +const settings = { verboseLogging: true, - log: new client.FileLogger('./simple-verbose.log') -}; -var gossipSeeds = [ - new client.GossipSeed({host: '192.168.33.10', port: 2113}), - new client.GossipSeed({host: '192.168.33.11', port: 2113}), - new client.GossipSeed({host: '192.168.33.12', port: 2113}) - ]; -var conn = client.createConnection(settings, gossipSeeds); -conn.connect() - .catch(function (err) { - console.log(err); - //process.exit(-1); - }); -conn.on('connected', function (endPoint) { - console.log('connected to endPoint', endPoint); - //Start some work - setInterval(function () { - conn.appendToStream('test-' + uuid.v4(), client.expectedVersion.noStream, [ - client.createJsonEventData(uuid.v4(), {abc: 123}, null, 'MyEvent') - ]).then(function (writeResult) { - console.log(writeResult); - }); - }, 1000); -}); -conn.on('error', function (err) { - console.log('Error occurred on connection:', err); -}); -conn.on('closed', function (reason) { - console.log('Connection closed, reason:', reason); - //process.exit(-1); -}); -process.stdin.setRawMode(true); -process.stdin.resume(); -process.stdin.on('data', process.exit.bind(process, 0)); \ No newline at end of file + log: new client.FileLogger("./simple-verbose.log") +} +const gossipSeeds = [ + new client.GossipSeed({host: "192.168.33.10", port: 2113}), + new client.GossipSeed({host: "192.168.33.11", port: 2113}), + new client.GossipSeed({host: "192.168.33.12", port: 2113}) +] +const connection = client.createConnection(settings, gossipSeeds) + +connection.connect().catch(err => console.log(err)) + +connection.on("connected", endPoint => { + console.log(`connected to endPoint ${endPoint}`) + + setInterval(() => { + connection.appendToStream( + `test-${uuid.v4()}`, + client.expectedVersion.noStream, + [ + client.createJsonEventData( + uuid.v4(), + { abc: 123 }, + null, + "MyEvent" + ) + ] + ).then(writeResult => console.log(writeResult)) + }, 1000) +}) + +connection.on("error", error => + console.log(`Error occurred on connection: ${error}`) +) + +connection.on("closed", reason => + console.log(`Connection closed, reason: ${reason}`) +) + +process.stdin.setRawMode(true) +process.stdin.resume() +process.stdin.on("data", process.exit.bind(process, 0)) diff --git a/samples/store-event.js b/samples/store-event.js index ce593b9..9373a93 100644 --- a/samples/store-event.js +++ b/samples/store-event.js @@ -1,40 +1,51 @@ -var esClient = require('../src/client'); // When running in 'eventstore-node/samples' folder. -// var esClient = require('eventstore-node'); // Otherwise -var uuid = require('uuid'); +const client = require("eventstore-node") +const uuid = require("uuid") -var esConnection = esClient.createConnection({}, {"host": "localhost", "port": 1113}); -esConnection.connect(); -esConnection.once('connected', function (tcpEndPoint) { - console.log('Connected to eventstore at ' + tcpEndPoint.host + ":" + tcpEndPoint.port); - var userId = uuid.v4(); - // This event could happen as a result of (e.g.) a 'CreateUser(id, username, password)' command. - var userCreatedEvent = { - id: userId, - username: "user" + uuid.v4().substring(0,6), // Hard-to-spell exotic username. - password: Math.random().toString() // Hard-to-guess password. - }; - var eventId = uuid.v4(); - var event = esClient.createJsonEventData(eventId, userCreatedEvent, null, "UserCreated"); - // Every user has her/his own stream of events: - var streamName = "user-" + userId; - console.log("Storing event. Look for it at http://localhost:2113/web/index.html#/streams/user-" + userId); - esConnection.appendToStream(streamName, esClient.expectedVersion.any, event) - .then(function(result) { - console.log("Event stored."); - process.exit(0); - }) - .catch(function(err) { - console.log(err); - process.exit(-1); - }); -}); +const settings = {} +const endpoint = { host: "localhost", port: 1113 } +const connection = client.createConnection(settings, endpoint) -esConnection.on('error', function (err) { - console.log('Error occurred on connection:', err); - process.exit(-1); -}); +connection.connect().catch(err => console.log(err)) -esConnection.on('closed', function (reason) { - console.log('Connection closed, reason:', reason); - process.exit(-1); -}); +connection.once("connected", tcpEndPoint => { + const userId = uuid.v4() + + const userCreatedEvent = { + id: userId, + username: `user${uuid.v4().substring(0,6)}`, + password: Math.random().toString() + } + + const event = client.createJsonEventData( + uuid.v4(), + userCreatedEvent, + null, + "UserCreated" + ) + + // Every user has their own stream of events: + const streamName = `user-${userId}` + + console.log(`Connected to eventstore at ${tcpEndPoint.host}:${tcpEndPoint.port}`) + console.log(`Storing event. Look for it at http://localhost:2113/web/index.html#/streams/user-${userId}`) + + connection.appendToStream(streamName, client.expectedVersion.any, event) + .then(result => { + console.log("Event stored.") + process.exit(0) + }) + .catch(error => { + console.log(error) + process.exit(-1) + }) +}) + +connection.on("error", error => { + console.log(`Error occurred on connection: ${error}`) + process.exit(-1) +}) + +connection.on("closed", reason => { + console.log(`Connection closed, reason: ${reason}`) + process.exit(-1) +}) diff --git a/samples/subscribe-all-events.js b/samples/subscribe-all-events.js index 530b188..fb7c462 100644 --- a/samples/subscribe-all-events.js +++ b/samples/subscribe-all-events.js @@ -1,48 +1,49 @@ -// Subscribe to all new events on the $all stream. Filter out any which aren't about "user" aggregates. +// Subscribe to all new events on the $all stream. Filter out any which aren"t about "user" aggregates. +const client = require("eventstore-node") -var esClient = require('../src/client'); // When running in 'eventstore-node/samples' folder. -// var esClient = require('eventstore-node'); // Otherwise +const resolveLinkTos = false -const credentialsForAllEventsStream = new esClient.UserCredentials("admin", "changeit"); -const resolveLinkTos = false; +const belongsToAUserAggregate = event => + event.originalEvent.eventStreamId.startsWith("user-") -var esConnection = esClient.createConnection({}, {"host": "localhost", "port": 1113}); -esConnection.connect(); -esConnection.once('connected', function (tcpEndPoint) { - console.log('Connected to eventstore at ' + tcpEndPoint.host + ":" + tcpEndPoint.port); - esConnection.subscribeToAll(resolveLinkTos, eventAppeared, subscriptionDropped, credentialsForAllEventsStream) - .then(function(subscription) { - console.log("subscription.isSubscribedToAll: " + subscription.isSubscribedToAll); - console.log("(To generate a test event, try running 'node store-event.js' in a separate console.)") - }); -}); - -function belongsToAUserAggregate(event) { - return event.originalEvent.eventStreamId.startsWith("user-") +const eventAppeared = (subscription, event) => { + if (belongsToAUserAggregate(event)) { + const aggregateId = event.originalEvent.eventStreamId + const eventId = event.originalEvent.eventId + const eventType = event.originalEvent.eventType + console.log(aggregateId, eventType, eventId) + console.log(event.originalEvent.data.toString()) + } } -function eventAppeared(subscription, event) { - // Ignore all events which aren't about users: - if(belongsToAUserAggregate(event)) { - var aggregateId = event.originalEvent.eventStreamId; - var eventId = event.originalEvent.eventId; - var eventType = event.originalEvent.eventType; - console.log(aggregateId, eventType, eventId); - console.log(event.originalEvent.data.toString() + "\n"); - } -} +const subscriptionDropped = (subscription, reason, error) => + console.log(error ? error : "Subscription dropped.") -function subscriptionDropped(subscription, reason, error) { - if (error) { - console.log(error); - } - console.log('Subscription dropped.'); -} +const credentials = new client.UserCredentials("admin", "changeit") -esConnection.on('error', function (err) { - console.log('Error occurred on connection:', err); -}); +const settings = {} +const endpoint = { host: "localhost", port: 1113 } +const connection = client.createConnection(settings, endpoint) -esConnection.on('closed', function (reason) { - console.log('Connection closed, reason:', reason); -}); +connection.connect().catch(err => console.log(err)) + +connection.once("connected", tcpEndPoint => { + console.log(`Connected to eventstore at ${tcpEndPoint.host}:${tcpEndPoint.port}`) + connection.subscribeToAll( + resolveLinkTos, + eventAppeared, + subscriptionDropped, + credentials + ).then(subscription => { + console.log(`subscription.isSubscribedToAll: ${subscription.isSubscribedToAll}`), + console.log("(To generate a test event, try running 'node store-event.js' in a separate console.)") + }) +}) + +connection.on("error", error => + console.log(`Error occurred on connection: ${error}`) +) + +connection.on("closed", reason => + console.log(`Connection closed, reason: ${reason}`) +) diff --git a/samples/subscribe-catchup-all-events.js b/samples/subscribe-catchup-all-events.js index 07aeb0a..4e15079 100644 --- a/samples/subscribe-catchup-all-events.js +++ b/samples/subscribe-catchup-all-events.js @@ -1,51 +1,47 @@ // Subscribe to all events on the $all stream. Catch up from the beginning, then listen for any new events as they occur. -// This can be used (e.g.) for subscribers which populate read models. +// This could be used for subscribers which populate read models. +const client = require("eventstore-node") -var esClient = require('../src/client'); // When running in 'eventstore-node/samples' folder. -// var esClient = require('eventstore-node'); // Otherwise +const eventAppeared => (stream, event) => + console.log( + event.originalEvent.eventStreamId, + event.originalEvent.eventId, + event.originalEvent.eventType + ) -const credentialsForAllEventsStream = new esClient.UserCredentials("admin", "changeit"); - -var esConnection = esClient.createConnection({}, {"host": "localhost", "port": 1113}); -esConnection.connect(); -esConnection.once('connected', function (tcpEndPoint) { - console.log('Connected to eventstore at ' + tcpEndPoint.host + ":" + tcpEndPoint.port); - var subscription = esConnection.subscribeToAllFrom(null, true, eventAppeared, liveProcessingStarted, subscriptionDropped, credentialsForAllEventsStream); - console.log("subscription.isSubscribedToAll: " + subscription.isSubscribedToAll); -}); - -function eventAppeared(subscription, event) { - // This is where to filter out events which the subscriber isn't interested in. - // For an example, see 'subscribe-all-events.js'. - console.log(event.originalEvent.eventStreamId); +const liveProcessingStarted = () => { + console.log("Caught up with previously stored events. Listening for new events.") + console.log("(To generate a test event, try running 'node store-event.js' in a separate console.)") } -function subscriptionDropped(subscription, reason, error) { - if (error) { - console.log(error); - } - console.log('Subscription dropped.'); -} +const subscriptionDropped = (subscription, reason, error) => + console.log(error ? error : "Subscription dropped.") -function liveProcessingStarted() { - console.log("Caught up with previously stored events. Listening for new events."); - console.log("(To generate a test event, try running 'node store-event.js' in a separate console.)") -} +const credentials = new client.UserCredentials("admin", "changeit") -function eventAppeared(stream, event) { - console.log(event.originalEvent.eventStreamId, event.originalEvent.eventId, event.originalEvent.eventType); - // Data: - // console.log(event.originalEvent.data.toString()); +const settings = {} +const endpoint = { host: "localhost", port: 1113 } +const connection = client.createConnection(settings, endpoint) - // Position in the event stream. Can be persisted and used to catch up with missed events when re-starting subscribers instead of re-reading - // all events from the beginning. - // console.log(event.originalPosition); -} +connection.connect().catch(err => console.log(err)) -esConnection.on('error', function (err) { - console.log('Error occurred on connection:', err); -}); +connection.once("connected", tcpEndPoint => { + const subscription = connection.subscribeToAllFrom( + null, + true, + eventAppeared, + liveProcessingStarted, + subscriptionDropped, + credentials + ) + console.log(`Connected to eventstore at ${tcpEndPoint.host}:${tcpEndPoint.port}`) + console.log(`subscription.isSubscribedToAll: ${subscription.isSubscribedToAll}`) +}) -esConnection.on('closed', function (reason) { - console.log('Connection closed, reason:', reason); -}); +connection.on("error", err => + console.log(`Error occurred on connection: ${err}`) +) + +connection.on("closed", reason => + console.log(`Connection closed, reason: ${reason}`) +)