Back

ReferenceError: crypto is not defined

  • 0
  • Functions
  • Cloud
Zionnite
3 Oct, 2024, 19:04

here is my code

TypeScript
import { default as axios } from 'axios';
import fetch from 'node-fetch';
import { WebhookReceiver } from 'livekit-server-sdk';

// This is your Appwrite function
// It's executed each time we get a request
export default async ({ req, res, log, error }) => {
  const client = new Client();
  const functions = new Functions(client);
  const database = new Databases(client);
  
  client.setEndpoint('https://cloud.appwrite.io/v1')
    .setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID)
    .setKey(process.env.APPWRITE_API_KEY);

  const ENDPOINT                                = process.env.MY_APPWRITE_ENDPOINT;
  const PROJECT_ID                              = process.env.APPWRITE_PROJECT_ID;
  const API_KEY                                 = process.env.APPWRITE_API_KEY;
  const DATABASE_ID                             = process.env.DATABASE_ID;
  const LIVEKIT_STREAMING_COLLECTION            = process.env.LIVEKIT_STREAMING_COLLECTION;
  const LIVE_KIT_API                            = process.env.LIVE_KIT_API;
  const LIVE_KIT_SEC_KEY                        = process.env.LIVE_KIT_SEC_KEY;
  const LIVE_KIT_WEBSOCKET                      = process.env.LIVE_KIT_WEBSOCKET;


  const receiver = new WebhookReceiver(LIVE_KIT_API, LIVE_KIT_SEC_KEY);

  if (req.method === 'POST') {
    const jsondData    = JSON.parse(req.bodyRaw);
    const VideoLibraryId    = jsondData.VideoLibraryId;
    const VideoGuid         = jsondData.VideoGuid;
    const Status            = jsondData.Status;

    // Event is a WebhookEvent object
    var headers = req.headers;
    log(`headers ${headers}`);
    var authorization = headers['authorization'];
    // const authorization = req.headers["Authorization"];
    const event = await receiver.receive(req.body, authorization);
    log(`Events ${event}`);

  }

  return res.send({method: 'method is POST'});
};
TL;DR
Error message: ReferenceError: crypto is not defined Developer needs a higher NodeJS runtime. The issue is due to the usage of WebhookReceiver from 'livekit-server-sdk' that requires the 'crypto' module which is not available in the current NodeJS runtime version (18.0). Solution: Update NodeJS to a higher version that includes the 'crypto' module.
Zionnite
3 Oct, 2024, 19:06

I'm using NodeJs Runtime Environment 18.0

Zionnite
3 Oct, 2024, 19:34

@Joshi hello

Joshi
3 Oct, 2024, 19:37

You literally put the answer to your problem in the title

Zionnite
3 Oct, 2024, 19:44

my head is smoking and confused...

Zionnite
3 Oct, 2024, 19:49

it seem like i need a higher nodejs runtime

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more