async function processBatch()

in src/GraphService.ts [138:174]


    async function processBatch() {
        if (Object.keys(queue).length === 0) {
            return;
        }

        const requests = [];
        const processingQueue = queue;
        queue = {};
        for (const id of Object.keys(processingQueue)) {
            const req = processingQueue[id];
            requests.push({
                id: req.id,
                method: req.method,
                url: req.url
            });
        }

        const adToken = await GraphServiceAuthenticator.getAuthToken();
        const batchRequest = new Request(`${graphBaseUrl}/v1.0/$batch`, {
            method: "POST",
            headers: {
                Authorization: `Bearer ${adToken}`,
                "Content-Type": "application/json"
            },
            body: JSON.stringify({ requests })
        });

        try {
            const batchResponse = await fetch(batchRequest);
            await processResponse(batchResponse, processingQueue);
        } catch (e) {
            // reject all
            for (const id of Object.keys(processingQueue)) {
                processingQueue[id].onReject(e);
            }
        }
    }