private async deleteBlobs()

in src/tree/blob/BlobContainerTreeItem.ts [293:322]


    private async deleteBlobs(
        blobsToDelete: azureStorageBlob.BlobItem[],
        transferProgress: TransferProgress,
        notificationProgress: NotificationProgress,
        cancellationToken: vscode.CancellationToken,
        properties: TelemetryProperties,
    ): Promise<void> {
        const containerClient: azureStorageBlob.ContainerClient = createBlobContainerClient(this.root, this.container.name);
        for (const blobIndex of blobsToDelete.keys()) {
            const blob: azureStorageBlob.BlobItem = blobsToDelete[blobIndex];
            try {
                ext.outputChannel.appendLog(`Deleting blob "${blob.name}"...`);
                const response: azureStorageBlob.BlobDeleteResponse = await containerClient.deleteBlob(blob.name);
                if (cancellationToken.isCancellationRequested) {
                    throw new UserCancelledError();
                } else if (response.errorCode) {
                    throw new Error(response.errorCode);
                } else {
                    transferProgress.reportToNotification(blobIndex, blobsToDelete.length, notificationProgress);
                }
            } catch (error) {
                if (parseError(error).isUserCancelledError) {
                    properties.cancelStep = "deleteBlobs";
                    throw error;
                }

                throw new Error(`Error deleting blob "${blob.name}" : ${parseError(error).message}`);
            }
        }
    }