in packages/aws-appsync-subscription-link/src/subscription-handshake-link.ts [196:215]
subscribeToTopic<T>(client, topic: string, observer: ZenObservable.Observer<T>) {
return new Promise((resolve, reject) => {
(client as any).subscribe(topic, {
onSuccess: () => {
if (!this.topicObservers.has(topic)) {
this.topicObservers.set(topic, new Set());
}
if (!this.clientObservers.has(client.clientId)) {
this.clientObservers.set(client.clientId, { client, observers: new Set() });
}
this.topicObservers.get(topic).add(observer);
this.clientObservers.get(client.clientId).observers.add(observer);
resolve(topic);
},
onFailure: reject,
});
});
}