File tree Expand file tree Collapse file tree 3 files changed +17
-22
lines changed
extensions/plugin-history-sync/src Expand file tree Collapse file tree 3 files changed +17
-22
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @stackflow/plugin-history-sync " : patch
3+ " @stackflow/core " : patch
4+ ---
5+
6+ accept only serializable parameters when making domain event
Original file line number Diff line number Diff line change @@ -2,6 +2,10 @@ import type { DomainEvent } from "../event-types";
22import type { BaseDomainEvent } from "../event-types/_base" ;
33import { id , time } from "../utils" ;
44
5+ function clone < T extends { } > ( input : T ) : T {
6+ return JSON . parse ( JSON . stringify ( input ) ) ;
7+ }
8+
59export function makeEvent < T extends DomainEvent [ "name" ] > (
610 name : T ,
711 parameters : Omit <
@@ -13,7 +17,7 @@ export function makeEvent<T extends DomainEvent["name"]>(
1317 return {
1418 id : id ( ) ,
1519 eventDate : time ( ) ,
16- ...parameters ,
20+ ...clone ( parameters ) ,
1721 name,
1822 } as Extract < DomainEvent , { name : T } > ;
1923}
Original file line number Diff line number Diff line change @@ -12,31 +12,16 @@ interface SerializedState extends State {
1212 _TAG : typeof STATE_TAG ;
1313}
1414
15+ function clone < T > ( input : T ) : T {
16+ return JSON . parse ( JSON . stringify ( input ) ) ;
17+ }
18+
1519function serializeStep ( step : ActivityStep ) : ActivityStep {
16- return {
17- ...step ,
18- enteredBy :
19- "activityContext" in step . enteredBy
20- ? {
21- ...step . enteredBy ,
22- activityContext : undefined ,
23- }
24- : {
25- ...step . enteredBy ,
26- } ,
27- } ;
20+ return clone ( step ) ;
2821}
2922
3023function serializeActivity ( activity : Activity ) : Activity {
31- return {
32- ...activity ,
33- context : undefined ,
34- enteredBy : {
35- ...activity . enteredBy ,
36- activityContext : undefined ,
37- } ,
38- steps : activity . steps . map ( serializeStep ) ,
39- } ;
24+ return clone ( activity ) ;
4025}
4126
4227function serializeState ( state : State ) : SerializedState {
You can’t perform that action at this time.
0 commit comments