Skip to content

Commit 8b2498c

Browse files
committed
cleanup applyEvent
1 parent 41457c5 commit 8b2498c

File tree

9 files changed

+32
-40
lines changed

9 files changed

+32
-40
lines changed

apps/events/src/routes/playground.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -141,18 +141,10 @@ const App = ({
141141
case 'space': {
142142
let state: SpaceState | undefined = undefined;
143143

144-
// TODO fix typing
145144
for (const event of response.events) {
146-
if (state === undefined) {
147-
const applyEventResult = await Effect.runPromiseExit(applyEvent({ event }));
148-
if (Exit.isSuccess(applyEventResult)) {
149-
state = applyEventResult.value;
150-
}
151-
} else {
152-
const applyEventResult = await Effect.runPromiseExit(applyEvent({ event, state }));
153-
if (Exit.isSuccess(applyEventResult)) {
154-
state = applyEventResult.value;
155-
}
145+
const applyEventResult = await Effect.runPromiseExit(applyEvent({ state: undefined, event }));
146+
if (Exit.isSuccess(applyEventResult)) {
147+
state = applyEventResult.value;
156148
}
157149
}
158150

apps/server/src/handlers/createSpace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ type Params = {
1111
};
1212

1313
export const createSpace = async ({ accountId, event, keyBox, keyId }: Params) => {
14-
const result = await Effect.runPromiseExit(applyEvent({ event }));
14+
const result = await Effect.runPromiseExit(applyEvent({ event, state: undefined }));
1515
if (Exit.isFailure(result)) {
1616
throw new Error('Invalid event');
1717
}

apps/server/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ webSocketServer.on('connection', async (webSocket: CustomWebSocket, request: Req
106106
break;
107107
}
108108
case 'create-space-event': {
109-
const applyEventResult = await Effect.runPromiseExit(applyEvent({ event: data.event }));
109+
const applyEventResult = await Effect.runPromiseExit(applyEvent({ event: data.event, state: undefined }));
110110
if (Exit.isSuccess(applyEventResult)) {
111111
const space = await createSpace({ accountId, event: data.event, keyBox: data.keyBox, keyId: data.keyId });
112112
const spaceWithEvents = await getSpace({ accountId, spaceId: space.id });

packages/graph-framework-space-events/src/accept-invitation.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ it('should accept an invitation', async () => {
2222
const { state3 } = await Effect.runPromise(
2323
Effect.gen(function* () {
2424
const spaceEvent = yield* createSpace({ author });
25-
const state = yield* applyEvent({ event: spaceEvent });
25+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
2626
const spaceEvent2 = yield* createInvitation({
2727
author,
2828
previousEventHash: state.lastEventHash,
2929
invitee,
3030
});
31-
const state2 = yield* applyEvent({ state, event: spaceEvent2 });
31+
const state2 = yield* applyEvent({ event: spaceEvent2, state });
3232
const spaceEvent3 = yield* acceptInvitation({
3333
previousEventHash: state2.lastEventHash,
3434
author: invitee,
3535
});
36-
const state3 = yield* applyEvent({ state: state2, event: spaceEvent3 });
36+
const state3 = yield* applyEvent({ event: spaceEvent3, state: state2 });
3737
return {
3838
state3,
3939
spaceEvent3,

packages/graph-framework-space-events/src/apply-event.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ it('should fail in case of an invalid signature', async () => {
2929

3030
// @ts-expect-error
3131
spaceEvent.author.signature = signature;
32-
return yield* applyEvent({ event: spaceEvent });
32+
return yield* applyEvent({ event: spaceEvent, state: undefined });
3333
}),
3434
);
3535

@@ -46,10 +46,10 @@ it('should fail in case state is not provided for an event other than createSpac
4646
const result = await Effect.runPromiseExit(
4747
Effect.gen(function* () {
4848
const spaceEvent = yield* createSpace({ author });
49-
const state = yield* applyEvent({ event: spaceEvent });
49+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
5050

5151
const spaceEvent2 = yield* createInvitation({ author, previousEventHash: state.lastEventHash, invitee });
52-
return yield* applyEvent({ event: spaceEvent2 });
52+
return yield* applyEvent({ event: spaceEvent2, state: undefined });
5353
}),
5454
);
5555

@@ -66,13 +66,13 @@ it('should fail in case of an event is applied that is not based on the previous
6666
const result = await Effect.runPromiseExit(
6767
Effect.gen(function* () {
6868
const spaceEvent = yield* createSpace({ author });
69-
const state = yield* applyEvent({ event: spaceEvent });
69+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
7070

7171
const spaceEvent2 = yield* createSpace({ author });
72-
const state2 = yield* applyEvent({ state, event: spaceEvent2 });
72+
const state2 = yield* applyEvent({ event: spaceEvent2, state });
7373

7474
const spaceEvent3 = yield* createInvitation({ author, previousEventHash: state.lastEventHash, invitee });
75-
return yield* applyEvent({ state: state2, event: spaceEvent3 });
75+
return yield* applyEvent({ event: spaceEvent3, state: state2 });
7676
}),
7777
);
7878

packages/graph-framework-space-events/src/apply-event.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
} from './types.js';
1414

1515
type Params = {
16-
state?: SpaceState;
16+
state: SpaceState | undefined;
1717
event: SpaceEvent;
1818
};
1919

packages/graph-framework-space-events/src/create-invitation.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ it('should create an invitation', async () => {
2929
const { spaceEvent2, state2 } = await Effect.runPromise(
3030
Effect.gen(function* () {
3131
const spaceEvent = yield* createSpace({ author });
32-
const state = yield* applyEvent({ event: spaceEvent });
32+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
3333
const spaceEvent2 = yield* createInvitation({
3434
author,
3535
previousEventHash: state.lastEventHash,
3636
invitee,
3737
});
38-
const state2 = yield* applyEvent({ state, event: spaceEvent2 });
38+
const state2 = yield* applyEvent({ event: spaceEvent2, state });
3939
return {
4040
state2,
4141
spaceEvent2,
@@ -65,13 +65,13 @@ it('should fail to invite the account twice', async () => {
6565
const result = await Effect.runPromiseExit(
6666
Effect.gen(function* () {
6767
const spaceEvent = yield* createSpace({ author });
68-
const state = yield* applyEvent({ event: spaceEvent });
68+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
6969
const spaceEvent2 = yield* createInvitation({
7070
author,
7171
previousEventHash: state.lastEventHash,
7272
invitee,
7373
});
74-
const state2 = yield* applyEvent({ state, event: spaceEvent2 });
74+
const state2 = yield* applyEvent({ event: spaceEvent2, state });
7575
const spaceEvent3 = yield* createInvitation({
7676
author,
7777
previousEventHash: state.lastEventHash,
@@ -88,13 +88,13 @@ it('should fail to invite an account that is already a member', async () => {
8888
const result = await Effect.runPromiseExit(
8989
Effect.gen(function* () {
9090
const spaceEvent = yield* createSpace({ author });
91-
const state = yield* applyEvent({ event: spaceEvent });
91+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
9292
const spaceEvent2 = yield* createInvitation({
9393
author,
9494
previousEventHash: state.lastEventHash,
9595
invitee: author, // inviting the author
9696
});
97-
yield* applyEvent({ state, event: spaceEvent2 });
97+
yield* applyEvent({ event: spaceEvent2, state });
9898
}),
9999
);
100100

@@ -105,24 +105,24 @@ it('should fail in case the author is not an admin', async () => {
105105
const result = await Effect.runPromiseExit(
106106
Effect.gen(function* () {
107107
const spaceEvent = yield* createSpace({ author });
108-
const state = yield* applyEvent({ event: spaceEvent });
108+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
109109
const spaceEvent2 = yield* createInvitation({
110110
author,
111111
previousEventHash: state.lastEventHash,
112112
invitee,
113113
});
114-
const state2 = yield* applyEvent({ state, event: spaceEvent2 });
114+
const state2 = yield* applyEvent({ event: spaceEvent2, state });
115115
const spaceEvent3 = yield* acceptInvitation({
116116
previousEventHash: state2.lastEventHash,
117117
author: invitee,
118118
});
119-
const state3 = yield* applyEvent({ state: state2, event: spaceEvent3 });
119+
const state3 = yield* applyEvent({ event: spaceEvent3, state: state2 });
120120
const spaceEvent4 = yield* createInvitation({
121121
author: invitee,
122122
previousEventHash: state.lastEventHash,
123123
invitee: invitee2,
124124
});
125-
yield* applyEvent({ state: state3, event: spaceEvent4 });
125+
yield* applyEvent({ event: spaceEvent4, state: state3 });
126126
}),
127127
);
128128

packages/graph-framework-space-events/src/create-space.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ it('should create a space state', async () => {
1313
const state = await Effect.runPromise(
1414
Effect.gen(function* () {
1515
const spaceEvent = yield* createSpace({ author });
16-
return yield* applyEvent({ event: spaceEvent });
16+
return yield* applyEvent({ event: spaceEvent, state: undefined });
1717
}),
1818
);
1919

packages/graph-framework-space-events/src/delete-space.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ it('should delete a space', async () => {
2323
const state = await Effect.runPromise(
2424
Effect.gen(function* () {
2525
const spaceEvent = yield* createSpace({ author });
26-
const state = yield* applyEvent({ event: spaceEvent });
26+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
2727
const spaceEvent2 = yield* deleteSpace({ author, id: state.id, previousEventHash: state.lastEventHash });
28-
return yield* applyEvent({ state, event: spaceEvent2 });
28+
return yield* applyEvent({ event: spaceEvent2, state });
2929
}),
3030
);
3131

@@ -46,24 +46,24 @@ it('should fail in case the author is not an admin', async () => {
4646
const result = await Effect.runPromiseExit(
4747
Effect.gen(function* () {
4848
const spaceEvent = yield* createSpace({ author });
49-
const state = yield* applyEvent({ event: spaceEvent });
49+
const state = yield* applyEvent({ event: spaceEvent, state: undefined });
5050
const spaceEvent2 = yield* createInvitation({
5151
author,
5252
previousEventHash: state.lastEventHash,
5353
invitee,
5454
});
55-
const state2 = yield* applyEvent({ state, event: spaceEvent2 });
55+
const state2 = yield* applyEvent({ event: spaceEvent2, state });
5656
const spaceEvent3 = yield* acceptInvitation({
5757
previousEventHash: state2.lastEventHash,
5858
author: invitee,
5959
});
60-
const state3 = yield* applyEvent({ state: state2, event: spaceEvent3 });
60+
const state3 = yield* applyEvent({ event: spaceEvent3, state: state2 });
6161
const spaceEvent4 = yield* deleteSpace({
6262
author: invitee,
6363
previousEventHash: state.lastEventHash,
6464
id: state.id,
6565
});
66-
yield* applyEvent({ state: state3, event: spaceEvent4 });
66+
yield* applyEvent({ event: spaceEvent4, state: state3 });
6767
}),
6868
);
6969

0 commit comments

Comments
 (0)