eventre
Event Sourcing Framework in MongoDB
Usage
import { eventre } from "eventre";
import { MongoClient } from "mongodb";
const mongoClient = new MongoClient();
const db = mongoClient.db("my_database");
type MyDomainEvent =
| BaseDomainEvent<
"init",
{
}
>
| BaseDomainEvent<
"update",
{
}
>;
type MyState = {
};
const reducer: BaseReducer<MyDomainEvent, MyState> = (prevState, event) => {
};
const repository = eventre({
db,
aggregateName: "MyModel",
reducer,
});
repository.all();
repository.findOne({
aggregateId: "...",
});
repository.batchGet({
aggregateIds: ["...", "..."],
});
repository.create({
initialEventName: "init",
initialEventData: {
},
});
repository.dispatch({
aggregate,
eventName: "edit",
eventData: {
},
});