Skip to content

getStream doesn't work on node 18 #946

@avdovi

Description

@avdovi

Bug Report

Prerequisites

  • Can you reproduce the problem?
  • Are you running the latest version?
  • Are you reporting to the correct repository?
  • Did you perform a cursory search?

For more information, see the CONTRIBUTING guide.

Description

The .getStream() method doesn't work when running on node 18.

Console Errors: [Is there any console error]

TypeError: stream.on is not a function

Screenshots: [If applicable, add screenshots to help explain your problem]

image

Steps to Reproduce

Here is a small application to reproduce the issue(just include the IDs):

import 'isomorphic-fetch'; // unnecessary and can be removed
import { Client } from '@microsoft/microsoft-graph-client';

const tenantId = '';
const clientId = '';
const clientSecret = '';
const userID = '';

const createAccessToken = async ({ tenantId, clientId, clientSecret }) => {
  const params = new URLSearchParams();
  params.append('grant_type', 'client_credentials');
  params.append('client_id', clientId);
  params.append('client_secret', clientSecret);
  params.append('scope', 'https://graph.microsoft.com/.default');

  const response = await fetch(
    `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,
    {
      method: 'POST',
      body: params,
    }
  );

  const { access_token } = await response.json();

  return access_token;
};

const createClient = async connectionConfig => {
  const accessToken = await createAccessToken(connectionConfig);

  return Client.init({
    authProvider: done => {
      done(null, accessToken);
    },
  });
};

const run = async () => {
  const imageUrl = `/users/${userID}/photo/$value`;
  const client = await createClient({ tenantId, clientId, clientSecret });

  const photo = await client.api(imageUrl).get();
  console.log({ photo }); // <-- photo is loaded

  const stream = await client.api(imageUrl).getStream();
  // fails with: stream.on is not a function
  stream.on('data', data => {
    console.log(data);
  });
};

run();

Expected behavior: [What you expected to happen]

a stream to be returned by .getStream() function

Actual behavior: [What actually happened]

.getStream() function is not returning a stream

Additional Context

Node 18 is used

Usage Information

Request ID - Value of the requestId field if you are receiving a Graph API error response

SDK Version - [SDK version you are using]

3.0.2

  • Node (Check, if using Node version of SDK)

Node Version - [The version of Node you are using]

18.8.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions