From e80aa2826d3197b67f2ac1e73683d7908b0725af Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Thu, 26 Oct 2023 13:42:20 +0100 Subject: [PATCH] @trigger.dev/express: Remove web-fetch dependency and use native node Request/Response --- .changeset/new-llamas-call.md | 5 +++++ packages/express/package.json | 1 - packages/express/src/index.ts | 8 ++++---- packages/express/tsconfig.json | 3 ++- pnpm-lock.yaml | 34 ---------------------------------- 5 files changed, 11 insertions(+), 40 deletions(-) create mode 100644 .changeset/new-llamas-call.md diff --git a/.changeset/new-llamas-call.md b/.changeset/new-llamas-call.md new file mode 100644 index 000000000..439125c5e --- /dev/null +++ b/.changeset/new-llamas-call.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/express": patch +--- + +Remove web-fetch dependency and use native node Request/Response diff --git a/packages/express/package.json b/packages/express/package.json index c26c2cf02..12931daed 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -36,7 +36,6 @@ "@trigger.dev/sdk": "workspace:^2.2.2" }, "dependencies": { - "@remix-run/web-fetch": "^4.3.5", "debug": "^4.3.4", "express": "^4.18.2" }, diff --git a/packages/express/src/index.ts b/packages/express/src/index.ts index bd69a54fc..cade700a3 100644 --- a/packages/express/src/index.ts +++ b/packages/express/src/index.ts @@ -1,6 +1,5 @@ import express, { Express } from "express"; import { TriggerClient } from "@trigger.dev/sdk"; -import { Request as StandardRequest, Headers as StandardHeaders } from "@remix-run/web-fetch"; /** * This is a convenience function to create an express server for the TriggerClient. If you want to use Trigger.dev with an existing express server, use `createMiddleware` instead. @@ -92,20 +91,21 @@ export function createMiddleware(client: TriggerClient, path: string = "/api/tri }; } -function convertToStandardRequest(req: express.Request): StandardRequest { +function convertToStandardRequest(req: express.Request): Request { const { headers: nextHeaders, method } = req; - const headers = new StandardHeaders(); + const headers = new Headers(); Object.entries(nextHeaders).forEach(([key, value]) => { headers.set(key, value as string); }); // Create a new Request object (hardcode the url because it doesn't really matter what it is) - return new StandardRequest("https://express.js/api/trigger", { + return new Request("https://express.js/api/trigger", { headers, method, // @ts-ignore body: req.body ? JSON.stringify(req.body) : req, + duplex: "half", }); } diff --git a/packages/express/tsconfig.json b/packages/express/tsconfig.json index 1eea77ed9..a64442248 100644 --- a/packages/express/tsconfig.json +++ b/packages/express/tsconfig.json @@ -5,7 +5,8 @@ "experimentalDecorators": true, "emitDecoratorMetadata": true, "declaration": false, - "declarationMap": false + "declarationMap": false, + "lib": ["DOM"] }, "exclude": ["node_modules"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2c50aff1..c29a9c76f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -858,7 +858,6 @@ importers: packages/express: specifiers: - '@remix-run/web-fetch': ^4.3.5 '@trigger.dev/sdk': workspace:^2.2.2 '@trigger.dev/tsconfig': workspace:* '@types/debug': ^4.1.7 @@ -869,7 +868,6 @@ importers: tsup: ^6.5.0 tsx: ^3.12.1 dependencies: - '@remix-run/web-fetch': 4.3.5 debug: 4.3.4 express: 4.18.2 devDependencies: @@ -10875,32 +10873,12 @@ packages: - react-dom dev: true - /@remix-run/web-blob/3.0.4: - resolution: {integrity: sha512-AfegzZvSSDc+LwnXV+SwROTrDtoLiPxeFW+jxgvtDAnkuCX1rrzmVJ6CzqZ1Ai0bVfmJadkG5GxtAfYclpPmgw==} - dependencies: - '@remix-run/web-stream': 1.0.4 - web-encoding: 1.1.5 - dev: false - /@remix-run/web-blob/3.0.5: resolution: {integrity: sha512-Mungj3erqCrq0+5zU/34NkeC2g+U7K6Uwa8uNiZgANvw0Wc64wKglk4MPQJZA0Y2tgPYXyrRn7uw4q75j6Hhww==} dependencies: '@remix-run/web-stream': 1.0.4 web-encoding: 1.1.5 - /@remix-run/web-fetch/4.3.5: - resolution: {integrity: sha512-cLLeNLvLRyFRhJLulzS98bb07kJ+ENkGaqUkBisdG4FNEoZF6tXtrTGLWJNJa1nAP/wFkMKEDxIP77LgAPyeow==} - engines: {node: ^10.17 || >=12.3} - dependencies: - '@remix-run/web-blob': 3.0.4 - '@remix-run/web-form-data': 3.0.4 - '@remix-run/web-stream': 1.0.3 - '@web3-storage/multipart-parser': 1.0.0 - abort-controller: 3.0.0 - data-uri-to-buffer: 3.0.1 - mrmime: 1.0.1 - dev: false - /@remix-run/web-fetch/4.3.6: resolution: {integrity: sha512-ifadyJS+/7W6LhKyA8tIR9fBIPwLCFVpl1YCYg5i0ikykiXxE3IWtPVB1G51AJFghc1YgR7rq8BRJLsJeUbE5Q==} engines: {node: ^10.17 || >=12.3} @@ -10918,23 +10896,11 @@ packages: dependencies: '@remix-run/web-blob': 3.0.5 - /@remix-run/web-form-data/3.0.4: - resolution: {integrity: sha512-UMF1jg9Vu9CLOf8iHBdY74Mm3PUvMW8G/XZRJE56SxKaOFWGSWlfxfG+/a3boAgHFLTkP7K4H1PxlRugy1iQtw==} - dependencies: - web-encoding: 1.1.5 - dev: false - /@remix-run/web-form-data/3.0.5: resolution: {integrity: sha512-txXJDzjDuTxF8MFvEp9AA2HF3oPcvmlE1I/6HIxeGpX3vpBtrCPw5KQ/nzgBZNuAxyxEm8ps6Ds/UZwoDyfGsQ==} dependencies: web-encoding: 1.1.5 - /@remix-run/web-stream/1.0.3: - resolution: {integrity: sha512-wlezlJaA5NF6SsNMiwQnnAW6tnPzQ5I8qk0Y0pSohm0eHKa2FQ1QhEKLVVcDDu02TmkfHgnux0igNfeYhDOXiA==} - dependencies: - web-streams-polyfill: 3.2.1 - dev: false - /@remix-run/web-stream/1.0.4: resolution: {integrity: sha512-SVO42pH21I1sAhksGEM8ZBV/jc1mz6knZSg6Qo/2HPy9JTvtUykm3QMHtF2OMCTUXxdRW+4E/rphkPRyGc8WKw==} dependencies: