From 273330b102c30f62895bd7d3b8b6d6762e080740 Mon Sep 17 00:00:00 2001 From: "Marc J. Schmidt" Date: Tue, 5 Mar 2024 13:45:17 +0100 Subject: [PATCH] fix(rpc): maintain strictSerialization option also in new observables --- packages/rpc/src/server/action.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/rpc/src/server/action.ts b/packages/rpc/src/server/action.ts index a2700a244..eaecfd8f7 100644 --- a/packages/rpc/src/server/action.ts +++ b/packages/rpc/src/server/action.ts @@ -318,6 +318,8 @@ export class RpcServerAction { case RpcTypes.ActionObservableSubscribe: { const observable = this.observables[message.id]; if (!observable) return response.error(new Error('No observable found')); + response.strictSerialization = observable.types.strictSerialization; + const { types, classType, method } = observable; const body = message.parseBody(); if (observable.subscriptions[body.id]) return response.error(new Error('Subscription already created')); @@ -340,6 +342,7 @@ export class RpcServerAction { }; observable.subscriptions[body.id] = sub; + response.errorLabel = `Observable ${getClassName(observable.classType)}.${observable.method} next serialization error`; sub.sub = observable.observable.subscribe((next) => { if (!sub.active) return; response.reply(RpcTypes.ResponseActionObservableNext, { @@ -414,6 +417,7 @@ export class RpcServerAction { case RpcTypes.ActionObservableProgressNext: { //ProgressTracker changes from client (e.g. stop signal) const observable = this.observables[message.id]; if (!observable || !(observable.observable instanceof ProgressTracker)) return response.error(new Error('No observable ProgressTracker to sync found')); + response.strictSerialization = observable.types.strictSerialization; observable.observable.next(message.parseBody()); break; }