oscklmO
Convex Community3y ago
6 replies
oscklm

Using ConvexHttpClient in a Next (App router) API route

So i'm trying to process a web hook from MUX, that comes in on a endpoint i setup in my next API routes, but im getting this console warning about unable to resolve 'encoding' from fetch/lib . Anyone knows if this is worth thinking about?

The warning happens when i post a request to the api route, currently im on the dev server and sending a test request from thunder api client for vscode.

The mutation goes through, so unsure if this is even a convex related question - might just be me not knowing how to do route handlers 👀

 Module not found: Can't resolve 'encoding' in '/Users/MYUSER/CodeProjects/flimmer/node_modules/node-fetch/lib'
web:dev: 
web:dev: Import trace for requested module:
web:dev: ../../node_modules/node-fetch/lib/index.js
web:dev: ../../node_modules/convex/dist/esm/browser/http_client-node.js
web:dev: ../../node_modules/convex/dist/esm/browser/index-node.js
web:dev: ../../packages/backend/httpClient.ts
web:dev: ./src/app/api/mux-endpoint/route.ts


Don't know if it potentially could be the way i export the client from my backend package, because im using a monorepo:
// packages/backend/httpClient.ts
import { ConvexHttpClient } from "convex/browser";

export const convexHttpClient = new ConvexHttpClient(
  process.env.NEXT_PUBLIC_CONVEX_URL
);



// api/mux-endpoint/route.ts
import { api } from "backend/convex/_generated/api";
import { convexHttpClient } from "backend/httpClient";
import { NextResponse } from "next/server";

export async function POST(req: Request) {
  try {
    const data = await req.json();

    if (data.type === "video.asset.ready") {
      const { id, object, environment, data: videoData } = data;

      // turn videoData into a string
      const videoDataString = JSON.stringify(videoData);

      const eventId = await convexHttpClient.mutation(api.app.createMuxEvent, {
        data: videoDataString,
      });
      
  // rest of file, error handling etc...
  }
}
Was this page helpful?