in packages/aws-appsync-subscription-link/src/subscription-handshake-link.ts [135:157]
async connectNewClients(connectionInfo: MqttConnectionInfo[], observer: ZenObservable.Observer<FetchResult>, operation: Operation) {
const { query } = operation;
const selectionNames = (getMainDefinition(query).selectionSet.selections as FieldNode[]).map(({ name: { value } }) => value);
const result = Promise.all(connectionInfo.map(c => this.connectNewClient(c, observer, selectionNames)));
const data = selectionNames.reduce(
(acc, name) => (acc[name] = acc[name] || null, acc),
{}
);
observer.next({
data,
extensions: {
controlMsgType: 'CONNECTED',
controlMsgInfo: {
connectionInfo,
},
}
});
return result
};