Skip to content

Instantly share code, notes, and snippets.

@jokesterfr
Created September 6, 2023 07:31
Show Gist options
  • Save jokesterfr/732b5b377062434aee778ed791fadec5 to your computer and use it in GitHub Desktop.
Save jokesterfr/732b5b377062434aee778ed791fadec5 to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
const {
EventStoreDBClient,
END,
BACKWARDS,
FORWARDS,
} = require("@eventstore/db-client");
require("dotenv").config();
const eventStoreClient = EventStoreDBClient.connectionString(
process.env.EVENTSTORE_CONNECTION_STRING
);
const isBusinessStream = (event) => !event.event.type.startsWith("$");
main = async () => {
console.log("Looking for checkpoint...");
let eventsCounter = 0;
const events = eventStoreClient.readAll({
resolveLinkTos: true,
direction: BACKWARDS,
fromPosition: END,
});
setInterval(() => {
console.log(`${eventsCounter / 3} events/s`);
eventsCounter = 0;
}, 3_000);
console.log("Parsing events...");
for await (const event of events) {
eventsCounter++;
if (event?.event) {
if (isBusinessStream(event)) {
console.log(
event.commitPosition,
event.revision,
event.event.position,
event.event.type
);
process.exit(0);
}
}
}
console.log("Done");
await eventStoreClient.dispose();
};
main();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment