import { Message, Vertex, IVertexOptions } from "../index"; export interface ISumVertexState { sum: number; } export default class SumVertex extends Vertex { public static VERTEX_TYPE = "sum"; public static FAKE_DATABASE_STORE = 0; public wasDeactivated = false; constructor(options: IVertexOptions) { super(options); } public async activate() { this.lifetime = 100; // short lifetime so we can easily test this.state = { sum: 0, }; } public async deactivate() { this.wasDeactivated = true; return this; } public async commit() { SumVertex.FAKE_DATABASE_STORE = this.state.sum; return this; } public async process(message: Message) { this.state.sum += message.body; return this; } }