Skip to content

Commit 9a8633e

Browse files
committed
serialize actor response
Signed-off-by: aabidsofi19 <[email protected]>
1 parent bf3da7a commit 9a8633e

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/actors/validators/dataValidator.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
SnapshotFrom,
88
assign,
99
fromPromise,
10+
sendParent,
1011
setup
1112
} from 'xstate';
1213
import { reply } from '../utils';
@@ -54,6 +55,15 @@ interface DataValidationFailedEvent extends EventObject {
5455
};
5556
}
5657

58+
const toSerializable = (data: unknown) => {
59+
try {
60+
return JSON.parse(JSON.stringify(data));
61+
} catch {
62+
console.warn('Data is not serializable, using toPlainObject as fallback', data);
63+
return {}
64+
}
65+
}
66+
5767
export const dataValidatorCommands = {
5868
validateData: ({
5969
validationPayload,
@@ -186,6 +196,7 @@ export const dataValidatorMachine = setup({
186196
target: 'idle',
187197
actions: [
188198
'setValidationResults',
199+
// send to parent
189200
reply(
190201
({
191202
context,
@@ -195,7 +206,7 @@ export const dataValidatorMachine = setup({
195206
event: ValidateActorDoneEvent;
196207
}) =>
197208
dataValidatorEvents.dataValidated({
198-
validationPayload: context.validationPayload as ValidationPayload,
209+
validationPayload: toSerializable(context.validationPayload) as ValidationPayload,
199210
validationResults: event.output.validationResults
200211
})
201212
) as any
@@ -207,7 +218,7 @@ export const dataValidatorMachine = setup({
207218
reply(
208219
({ context, event }: { context: ValidationMachineContext; event: ErrorActorEvent }) =>
209220
dataValidatorEvents.dataValidationFailed({
210-
validationPayload: context.validationPayload as ValidationPayload,
221+
validationPayload: toSerializable(context.validationPayload) as ValidationPayload,
211222
systemErrors: event.error
212223
})
213224
) as any,

src/actors/worker/fromWorkerfiedActor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export const fromWorkerfiedActor = (
5353
}
5454

5555
if (event.type === WORKER_EVENTS.PROXY_EVENT) {
56+
console.log('Proxy event received from worker', eventFromWorker);
5657
const proxyEvent = event as ProxyEvent;
5758
if (proxyEvent.data.to === 'parent' && self._parent) {
5859
console.log('Relaying to parent', proxyEvent.data);

0 commit comments

Comments
 (0)