Skip to content

Commit 2bc0233

Browse files
jsonnulllamualfa
andauthored
Fix error when TRPC client closes a subscription (#192)
Co-authored-by: Laode Muhammad Al Fatih <[email protected]>
1 parent fb7845f commit 2bc0233

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

.changeset/red-tools-worry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'electron-trpc': patch
3+
---
4+
5+
Fix issue when TRPC client tries to close a subscription.

packages/electron-trpc/src/renderer/ipcLink.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,20 +96,13 @@ export function ipcLink<TRouter extends AnyRouter>(): TRPCLink<TRouter> {
9696
return observable((observer) => {
9797
op.input = runtime.transformer.serialize(op.input);
9898

99-
let isDone = false;
10099
const unsubscribe = client.request(op, {
101100
error(err) {
102-
isDone = true;
103101
observer.error(err as TRPCClientError<any>);
104102
unsubscribe();
105103
},
106104
complete() {
107-
if (!isDone) {
108-
isDone = true;
109-
observer.error(TRPCClientError.from(new Error('Operation ended prematurely')));
110-
} else {
111-
observer.complete();
112-
}
105+
observer.complete();
113106
},
114107
next(response) {
115108
const transformed = transformResult(response, runtime);
@@ -122,15 +115,13 @@ export function ipcLink<TRouter extends AnyRouter>(): TRPCLink<TRouter> {
122115
observer.next({ result: transformed.result });
123116

124117
if (op.type !== 'subscription') {
125-
isDone = true;
126118
unsubscribe();
127119
observer.complete();
128120
}
129121
},
130122
});
131123

132124
return () => {
133-
isDone = true;
134125
unsubscribe();
135126
};
136127
});

0 commit comments

Comments
 (0)