Skip to content

Commit c1710ae

Browse files
authored
fix: Buffer import breaks @trigger.dev/react (#714)
1 parent 9c5a7cf commit c1710ae

24 files changed

Lines changed: 373 additions & 17 deletions

File tree

.changeset/dull-masks-smash.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@trigger.dev/core-backend": patch
3+
"@trigger.dev/sdk": patch
4+
"@trigger.dev/core": patch
5+
---
6+
7+
Creates a new package @trigger.dev/core-backend that includes code shared between @trigger.dev/sdk and the Trigger.dev server

apps/webapp/app/services/runs/performRunExecutionV2.server.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {
2-
API_VERSIONS,
3-
BloomFilter,
2+
ApiEventLog,
43
ConnectionAuth,
54
EndpointHeadersSchema,
65
RunJobAutoYieldWithCompletedTaskExecutionError,
6+
RunJobBody,
77
RunJobError,
88
RunJobInvalidPayloadError,
99
RunJobResumeWithTask,
@@ -14,27 +14,25 @@ import {
1414
RunSourceContextSchema,
1515
supportsFeature,
1616
} from "@trigger.dev/core";
17+
import { BloomFilter } from "@trigger.dev/core-backend";
1718
import { RuntimeEnvironmentType, type Task } from "@trigger.dev/database";
1819
import { generateErrorMessage } from "zod-error";
1920
import { eventRecordToApiJson } from "~/api.server";
21+
import {
22+
MAX_RUN_CHUNK_EXECUTION_LIMIT,
23+
MAX_RUN_YIELDED_EXECUTIONS,
24+
RUN_CHUNK_EXECUTION_BUFFER,
25+
} from "~/consts";
2026
import { $transaction, PrismaClient, PrismaClientOrTransaction, prisma } from "~/db.server";
27+
import { detectResponseIsTimeout } from "~/models/endpoint.server";
2128
import { enqueueRunExecutionV2 } from "~/models/jobRunExecution.server";
2229
import { resolveRunConnections } from "~/models/runConnection.server";
30+
import { prepareTasksForCaching, prepareTasksForCachingLegacy } from "~/models/task.server";
31+
import { CompleteRunTaskService } from "~/routes/api.v1.runs.$runId.tasks.$id.complete";
2332
import { formatError } from "~/utils/formatErrors.server";
2433
import { safeJsonZodParse } from "~/utils/json";
2534
import { EndpointApi } from "../endpointApi.server";
2635
import { logger } from "../logger.server";
27-
import { prepareTasksForCaching, prepareTasksForCachingLegacy } from "~/models/task.server";
28-
import {
29-
MAX_RUN_CHUNK_EXECUTION_LIMIT,
30-
MAX_RUN_YIELDED_EXECUTIONS,
31-
RESPONSE_TIMEOUT_STATUS_CODES,
32-
RUN_CHUNK_EXECUTION_BUFFER,
33-
} from "~/consts";
34-
import { ApiEventLog } from "@trigger.dev/core";
35-
import { RunJobBody } from "@trigger.dev/core";
36-
import { CompleteRunTaskService } from "~/routes/api.v1.runs.$runId.tasks.$id.complete";
37-
import { detectResponseIsTimeout } from "~/models/endpoint.server";
3836
import { forceYieldCoordinator } from "./forceYieldCoordinator.server";
3937

4038
type FoundRun = NonNullable<Awaited<ReturnType<typeof findRun>>>;

apps/webapp/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
"@team-plain/typescript-sdk": "^2.2.0",
6464
"@trigger.dev/companyicons": "^1.5.14",
6565
"@trigger.dev/core": "workspace:*",
66+
"@trigger.dev/core-backend": "workspace:*",
6667
"@trigger.dev/database": "workspace:*",
6768
"@trigger.dev/sdk": "workspace:*",
6869
"@types/pg": "8.6.6",

apps/webapp/remix.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ module.exports = {
1212
"marked",
1313
"axios",
1414
"@trigger.dev/core",
15+
"@trigger.dev/core-backend",
1516
"@trigger.dev/sdk",
1617
"emails",
1718
"highlight.run",
1819
],
1920
watchPaths: async () => {
2021
return [
2122
"../../packages/core/src/**/*",
23+
"../../packages/core-backend/src/**/*",
2224
"../../packages/trigger-sdk/src/**/*",
2325
"../../packages/emails/src/**/*",
2426
];

apps/webapp/tsconfig.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
"@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"],
2424
"@trigger.dev/core": ["../../packages/core/src/index"],
2525
"@trigger.dev/core/*": ["../../packages/core/src/*"],
26+
"@trigger.dev/core-backend": ["../../packages/core-backend/src/index"],
27+
"@trigger.dev/core-backend/*": ["../../packages/core-backend/src/*"],
2628
"@trigger.dev/database": ["../../packages/database/src/index"],
2729
"@trigger.dev/database/*": ["../../packages/database/src/*"],
2830
"emails": ["../../packages/emails/src/index"],
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
## Troubleshooting
2+
3+
### `'TriggerProvider' not found`
4+
5+
When running the Remix app, you may see an error like this:
6+
7+
```
8+
import { TriggerProvider } from "@trigger.dev/react";
9+
^^^^^^^^^^^^^^^
10+
SyntaxError: Named export 'TriggerProvider' not found. The requested module '@trigger.dev/react' is a CommonJS module, which may not support all module.exports as named exports.
11+
CommonJS modules can always be imported via the default export, for example using:
12+
13+
import pkg from '@trigger.dev/react';
14+
const { TriggerProvider } = pkg;
15+
```
16+
17+
To fix this, edit your `remix.config.js` file and add the `@trigger.dev/react` package to your list of `serverDependenciesToBundle`:
18+
19+
```js
20+
export default {
21+
// ... other config
22+
serverDependenciesToBundle: ["@trigger.dev/react"],
23+
};
24+
```
25+
26+
### `[ERROR] Node builtin "buffer"`
27+
28+
When running the Remix app, you may see an error like this:
29+
30+
```
31+
✘ [ERROR] Node builtin "buffer" (imported by "node_modules/@trigger.dev/core/dist/index.js") must be polyfilled for the browser.
32+
You can enable this polyfill in your Remix config, e.g. `browserNodeBuiltinsPolyfill: { modules: { buffer: true } }`
33+
[plugin browser-node-builtins-polyfill-plugin]
34+
```
35+
36+
To fix this, edit your `remix.config.js` file and add the `browserNodeBuiltinsPolyfill` config:
37+
38+
```js
39+
export default {
40+
browserNodeBuiltinsPolyfill: {
41+
modules: {
42+
buffer: "empty",
43+
},
44+
},
45+
};
46+
```

docs/documentation/guides/manual/remix.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ description: "How to manually setup Trigger.dev in your Remix project"
55
---
66

77
<Snippet file="manual-setup-remix.mdx" />
8+
9+
<Snippet file="remix/troubleshooting.mdx" />

docs/documentation/guides/platforms/remix.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ View our [guide for writing Jobs](/documentation/guides/create-a-job).
1616
## Deployment
1717

1818
View our [deployment guide](/documentation/guides/deployment) to learn how to deploy your Jobs.
19+
20+
<Snippet file="remix/troubleshooting.mdx" />

docs/documentation/quickstarts/remix.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ description: "Start creating Jobs in 5 minutes in your Remix project."
55
icon: "r"
66
---
77

8+
## Quickstart
9+
810
This quick start guide will get you up and running with Trigger.dev.
911

1012
<Accordion title="Need to create a new Remix project to add Trigger.dev to?">
@@ -84,6 +86,8 @@ If you navigate to your Trigger.dev project you will see this Job in the "Jobs"
8486

8587
</Steps>
8688

89+
<Snippet file="remix/troubleshooting.mdx" />
90+
8791
<Snippet file="quickstart-whats-next.mdx" />
8892
<CardGroup cols={2}>
8993
<Snippet file="card-react-hooks.mdx" />

packages/core-backend/CHANGELOG.md

Whitespace-only changes.

0 commit comments

Comments
 (0)