Getting DataCloneError while using instance of a class as return value of RPC method
Error message: DataCloneError: Could not serialize object of type "st". This type does not support serialization.
Hono route
RPC class
Hono route
app.get("/pay/:id", async (c) => {
const id = c.req.param("id");
const services = c.get("services");
const paymentService = await c.env.PAYMENTS.newPaymentService(services.logger);
try {
const response = await paymentService.queryPaymentStatus({
pspReference: id,
reference: id,
sessionId: id
});
return c.json({
status: "successful",
message: "api request completed",
rpcResponse: response
})
} finally {
paymentService[Symbol.dispose]()
}
})app.get("/pay/:id", async (c) => {
const id = c.req.param("id");
const services = c.get("services");
const paymentService = await c.env.PAYMENTS.newPaymentService(services.logger);
try {
const response = await paymentService.queryPaymentStatus({
pspReference: id,
reference: id,
sessionId: id
});
return c.json({
status: "successful",
message: "api request completed",
rpcResponse: response
})
} finally {
paymentService[Symbol.dispose]()
}
})RPC class
export class PaymentService extends WorkerEntrypoint<Env> {
fetch(request: Request): Response | Promise<Response> {
return new Response("Hello from payments RPC")
}
async newPaymentService(logger: Logger) {
initCache(this.ctx, this.env);
return new Payments(logger);
}
}export class PaymentService extends WorkerEntrypoint<Env> {
fetch(request: Request): Response | Promise<Response> {
return new Response("Hello from payments RPC")
}
async newPaymentService(logger: Logger) {
initCache(this.ctx, this.env);
return new Payments(logger);
}
}