Skip to content

Commit

Permalink
improve subscription client type in query reducer
Browse files Browse the repository at this point in the history
  • Loading branch information
imolorhe committed Nov 20, 2021
1 parent 2bd100e commit 410ad1f
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 7 deletions.
15 changes: 11 additions & 4 deletions packages/altair-app/src/app/modules/altair/effects/query.effect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -608,10 +608,13 @@ export class QueryEffects {
try {
// Stop any currently active subscription
if (response.data.query.subscriptionClient?.close) {
response.data.query.subscriptionClient.close();
try {
response.data.query.subscriptionClient.close();
} catch (err) {
debug.log('error closing subscription client', err);
}
}


try {
const subscriptionConnectionParams = this.environmentService.hydrate(response.data.query.subscriptionConnectionParams);

Expand Down Expand Up @@ -712,10 +715,14 @@ export class QueryEffects {
}),
switchMap(res => {
if (res.data.query.subscriptionClient?.close) {
res.data.query.subscriptionClient.close();
try {
res.data.query.subscriptionClient.close();
} catch (err) {
debug.log('error closing subscription client', err);
}
}

return observableOf(new queryActions.SetSubscriptionClientAction(res.windowId, { subscriptionClient: null }));
return observableOf(new queryActions.SetSubscriptionClientAction(res.windowId, { subscriptionClient: undefined }));
}),
);
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Action as NGRXAction } from '@ngrx/store';
import { SubscriptionProvider } from 'altair-graphql-core/build/subscriptions/subscription-provider';
import { QueryEditorState } from 'altair-graphql-core/build/types/state/query.interfaces';
import { IDictionary } from '../../interfaces/shared';

Expand Down Expand Up @@ -185,7 +186,7 @@ export class SetSubscriptionProviderIdAction implements NGRXAction {
export class SetSubscriptionClientAction implements NGRXAction {
readonly type = SET_SUBSCRIPTION_CLIENT;

constructor(public windowId: string, public payload: { subscriptionClient: any }) { }
constructor(public windowId: string, public payload: { subscriptionClient?: SubscriptionProvider }) { }
}

export class AddSubscriptionResponseAction implements NGRXAction {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const getInitialState = (): QueryState => {
showEditorAlert: false,
editorAlertMessage: 'Query is set',
editorAlertSuccess: true,
subscriptionClient: null,
subscriptionClient: undefined,
subscriptionConnectionParams: initialData.initialSubscriptionsPayload ? JSON.stringify(initialData.initialSubscriptionsPayload) : '{}',
subscriptionProviderId: initialData.initialSubscriptionsProvider || WEBSOCKET_PROVIDER_ID,
isSubscribed: false,
Expand Down
3 changes: 2 additions & 1 deletion packages/altair-core/src/types/state/query.interfaces.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { SubscriptionProvider } from '../../subscriptions/subscription-provider';
import { IDictionary } from '../shared';

export interface QueryEditorState {
Expand Down Expand Up @@ -37,7 +38,7 @@ export interface QueryState {
showEditorAlert: boolean;
editorAlertMessage: string;
editorAlertSuccess: boolean;
subscriptionClient: any;
subscriptionClient?: SubscriptionProvider;
subscriptionConnectionParams: string;
subscriptionProviderId?: string;
isSubscribed: boolean;
Expand Down

0 comments on commit 410ad1f

Please sign in to comment.