cf13fbdf32
* Add triggerAndWait().unwrap() to more easily get at the output or throw the subtask error * Add taskId and runId to SubtaskUnwrapError * WIP docs update beta -> latest * trigger.dev init now adds @trigger.dev/build to devDependencies * How it works doc * Restructure some docs and update the cli commands * Config file docs, plus aptGet and ffmpeg extensions * Update to latest from beta docs * Add runtime to templates * Add --runtime option to the init CLI command * A bunch more doc updates after feedback * Document triggerAndWait with unwrap and result types * beta -> latest in the webapp * CLI update check no longer references beta * Add major release * Leave changeset beta, back to normal package release * Fixed default dirs option in init command * exclude windows-yarn variation of cli e2e tests because it’s buggy * Remove cache to try and fix yarn e2e test workflow errors
114 lines
3.0 KiB
Plaintext
114 lines
3.0 KiB
Plaintext
---
|
|
title: "Bun guide"
|
|
sidebarTitle: "Bun"
|
|
description: "This guide will show you how to setup Trigger.dev with Bun"
|
|
icon: "js"
|
|
---
|
|
|
|
import Prerequisites from "/snippets/framework-prerequisites.mdx";
|
|
import CliRunTestStep from "/snippets/step-run-test.mdx";
|
|
import CliViewRunStep from "/snippets/step-view-run.mdx";
|
|
|
|
We now have experimental support for Bun. This guide will show you have to setup Trigger.dev in your existing Bun project, test an example task, and view the run.
|
|
|
|
<Warn>
|
|
The trigger.dev CLI does not yet support Bun. So you will need to run the CLI using Node.js. But
|
|
Bun will still be used to execute your tasks, even in the `dev` environment.
|
|
</Warn>
|
|
|
|
<Prerequisites framework="Bun" />
|
|
|
|
## Initial setup
|
|
|
|
<Steps>
|
|
<Step title="Run the CLI `init` command">
|
|
|
|
The easiest way to get started is to use the CLI. It will add Trigger.dev to your existing project, create a `/trigger` folder and give you an example task.
|
|
|
|
Run this command in the root of your project to get started:
|
|
|
|
<CodeGroup>
|
|
|
|
```bash npm
|
|
npx trigger.dev@latest init --runtime bun
|
|
```
|
|
|
|
```bash pnpm
|
|
pnpm dlx trigger.dev@latest init --runtime bun
|
|
```
|
|
|
|
```bash yarn
|
|
yarn dlx trigger.dev@latest init --runtime bun
|
|
```
|
|
|
|
</CodeGroup>
|
|
|
|
It will do a few things:
|
|
|
|
1. Log you into the CLI if you're not already logged in.
|
|
2. Create a `trigger.config.ts` file in the root of your project.
|
|
3. Ask where you'd like to create the `/trigger` directory.
|
|
4. Create the `/src/trigger` directory with an example task, `/src/trigger/example.[ts/js]`.
|
|
|
|
Install the "Hello World" example task when prompted. We'll use this task to test the setup.
|
|
|
|
</Step>
|
|
|
|
<Step title="Update example.ts to use Bun">
|
|
|
|
Open the `/src/trigger/example.ts` file and replace the contents with the following:
|
|
|
|
```ts example.ts
|
|
import { Database } from "bun:sqlite";
|
|
import { task } from "@trigger.dev/sdk/v3";
|
|
|
|
export const bunTask = task({
|
|
id: "bun-task",
|
|
run: async (payload: { query: string }) => {
|
|
const db = new Database(":memory:");
|
|
const query = db.query("select 'Hello world' as message;");
|
|
console.log(query.get()); // => { message: "Hello world" }
|
|
|
|
return {
|
|
message: "Query executed",
|
|
};
|
|
},
|
|
});
|
|
|
|
```
|
|
|
|
</Step>
|
|
|
|
<Step title="Run the CLI `dev` command">
|
|
|
|
The CLI `dev` command runs a server for your tasks. It watches for changes in your `/trigger` directory and communicates with the Trigger.dev platform to register your tasks, perform runs, and send data back and forth.
|
|
|
|
It can also update your `@trigger.dev/*` packages to prevent version mismatches and failed deploys. You will always be prompted first.
|
|
|
|
<CodeGroup>
|
|
|
|
```bash npm
|
|
npx trigger.dev@latest dev
|
|
```
|
|
|
|
```bash pnpm
|
|
pnpm dlx trigger.dev@latest dev
|
|
```
|
|
|
|
```bash yarn
|
|
yarn dlx trigger.dev@latest dev
|
|
```
|
|
|
|
</CodeGroup>
|
|
|
|
</Step>
|
|
|
|
<CliRunTestStep />
|
|
<CliViewRunStep />
|
|
|
|
</Steps>
|
|
|
|
## Known issues
|
|
|
|
- Certain OpenTelemetry instrumentation will not work with Bun, because Bun does not support Node's `register` hook. This means that some libraries that rely on this hook will not work with Bun.
|