async connectNewClients()

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
    };