Skip to content

Commit bc38c3c

Browse files
committed
fix(runtime): gate new Node runtimes behind experimental aliases
1 parent 3cb2ff0 commit bc38c3c

4 files changed

Lines changed: 25 additions & 24 deletions

File tree

.changeset/experimental-node-runtimes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
"trigger.dev": patch
44
---
55

6-
Add experimental Node.js 24 and 26 task runtimes. Set `runtime` to `experimental-node-24` or `experimental-node-26` in `trigger.config.ts`; the forward-compatible `node-24` and `node-26` keys are also accepted.
6+
Add experimental Node.js 24 and 26 task runtimes. Set `runtime` to `experimental-node-24` or `experimental-node-26` in `trigger.config.ts`.

packages/cli-v3/src/config.test.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ describe("loadConfig runtime", () => {
3535
it.each([
3636
["experimental-node-24", "node-24"],
3737
["experimental-node-26", "node-26"],
38-
["node-24", "node-24"],
39-
["node-26", "node-26"],
4038
] as const)("normalizes %s before returning the resolved config", async (runtime, expected) => {
4139
const cwd = await createProject(runtime);
4240

@@ -49,11 +47,14 @@ describe("loadConfig runtime", () => {
4947
await expect(loadConfig({ cwd, warn: false })).resolves.toMatchObject({ runtime: "node" });
5048
});
5149

52-
it("rejects unsupported runtimes while loading config", async () => {
53-
const cwd = await createProject("node-23");
50+
it.each(["node-24", "node-26", "node-23"])(
51+
"rejects unsupported public runtime %s while loading config",
52+
async (runtime) => {
53+
const cwd = await createProject(runtime);
5454

55-
await expect(loadConfig({ cwd, warn: false })).rejects.toThrowError(
56-
/Unsupported runtime "node-23" in trigger\.config/
57-
);
58-
});
55+
await expect(loadConfig({ cwd, warn: false })).rejects.toThrowError(
56+
new RegExp(`Unsupported runtime "${runtime}" in trigger\\.config`)
57+
);
58+
}
59+
);
5960
});

packages/core/src/v3/build/runtime.test.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,32 @@ import { BuildManifest, BuildRuntime, ConfigRuntime, WorkerManifest } from "../s
33
import { isExperimentalConfigRuntime, resolveBuildRuntime } from "./runtime.js";
44

55
describe("runtime configuration", () => {
6-
it.each([
7-
"node",
8-
"node-22",
9-
"node-24",
10-
"node-26",
11-
"experimental-node-24",
12-
"experimental-node-26",
13-
"bun",
14-
] as const)("accepts %s as a public config runtime", (runtime) => {
15-
expect(ConfigRuntime.parse(runtime)).toBe(runtime);
16-
});
6+
it.each(["node", "node-22", "experimental-node-24", "experimental-node-26", "bun"] as const)(
7+
"accepts %s as a public config runtime",
8+
(runtime) => {
9+
expect(ConfigRuntime.parse(runtime)).toBe(runtime);
10+
}
11+
);
1712

1813
it.each([
1914
["experimental-node-24", "node-24"],
2015
["experimental-node-26", "node-26"],
21-
["node-24", "node-24"],
22-
["node-26", "node-26"],
2316
["node", "node"],
2417
["node-22", "node-22"],
2518
["bun", "bun"],
2619
] as const)("normalizes %s to %s", (runtime, expected) => {
2720
expect(resolveBuildRuntime(runtime)).toBe(expected);
2821
});
2922

23+
it.each(["node-24", "node-26"] as const)(
24+
"keeps internal runtime %s out of the public config schema",
25+
(runtime) => {
26+
expect(ConfigRuntime.safeParse(runtime).success).toBe(false);
27+
expect(BuildRuntime.safeParse(runtime).success).toBe(true);
28+
expect(() => resolveBuildRuntime(runtime)).toThrowError(/Unsupported runtime/);
29+
}
30+
);
31+
3032
it("rejects unsupported config runtimes with a clear error", () => {
3133
expect(() => resolveBuildRuntime("node-23")).toThrowError(
3234
/Unsupported runtime "node-23" in trigger\.config\. Supported runtimes:/

packages/core/src/v3/schemas/build.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ export type BuildTarget = z.infer<typeof BuildTarget>;
1616
export const ConfigRuntime = z.enum([
1717
"node",
1818
"node-22",
19-
"node-24",
20-
"node-26",
2119
"experimental-node-24",
2220
"experimental-node-26",
2321
"bun",

0 commit comments

Comments
 (0)