Skip to content

Commit 6701036

Browse files
authored
Add RedwoodSDK as an option to c3. (#11221)
* Add RedwoodSDK to c3. * Add tests. * Update changeset. * Fix formatting. * Fix tests.
1 parent 5c0c611 commit 6701036

File tree

6 files changed

+57
-1
lines changed

6 files changed

+57
-1
lines changed

.changeset/clean-radios-bathe.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"create-cloudflare": patch
3+
---
4+
5+
Add RedwoodSDK as a framework option

packages/create-cloudflare/e2e/tests/cli/cli.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ describe("Create Cloudflare CLI", () => {
657657
npm create cloudflare -- --framework next -- --ts
658658
pnpm create cloudflare --framework next -- --ts
659659
Allowed Values:
660-
analog, angular, astro, docusaurus, gatsby, hono, next, nuxt, qwik, react, react-router, solid, svelte, tanstack-start, vue, waku
660+
analog, angular, astro, docusaurus, gatsby, hono, next, nuxt, qwik, react, react-router, redwood, solid, svelte, tanstack-start, vue, waku
661661
--platform=<value>
662662
Whether the application should be deployed to Pages or Workers. This is only applicable for Frameworks templates that support both Pages and Workers.
663663
Allowed Values:

packages/create-cloudflare/e2e/tests/frameworks/test-config.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,21 @@ function getFrameworkTestConfig(pm: string): NamedFrameworkTestConfig[] {
602602
},
603603
nodeCompat: true,
604604
},
605+
{
606+
name: "redwood",
607+
testCommitMessage: true,
608+
timeout: LONG_TIMEOUT,
609+
unsupportedOSs: ["win32"],
610+
verifyDeploy: {
611+
route: "/",
612+
expectedText: "RedwoodSDK",
613+
},
614+
verifyPreview: {
615+
route: "/",
616+
expectedText: "RedwoodSDK",
617+
},
618+
nodeCompat: true,
619+
},
605620
];
606621
}
607622

packages/create-cloudflare/src/frameworks/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"create-next-app": "15.5.6",
1414
"create-qwik": "1.17.2",
1515
"create-vite": "7.1.1",
16+
"create-rwsdk": "3.1.0",
1617
"create-react-router": "7.9.6",
1718
"create-solid": "0.6.11",
1819
"create-vue": "3.18.2",

packages/create-cloudflare/src/templates.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import queuesTemplate from "templates/queues/c3";
3939
import qwikTemplate from "templates/qwik/c3";
4040
import reactRouterTemplate from "templates/react-router/c3";
4141
import reactTemplate from "templates/react/c3";
42+
import redwoodTemplate from "templates/redwood/c3";
4243
import scheduledTemplate from "templates/scheduled/c3";
4344
import solidTemplate from "templates/solid/c3";
4445
import svelteTemplate from "templates/svelte/c3";
@@ -252,6 +253,7 @@ export function getFrameworkMap({ experimental = false }): TemplateMap {
252253
qwik: qwikTemplate,
253254
react: reactTemplate,
254255
"react-router": reactRouterTemplate,
256+
redwood: redwoodTemplate,
255257
solid: solidTemplate,
256258
svelte: svelteTemplate,
257259
"tanstack-start": tanStackStartTemplate,
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { logRaw } from "@cloudflare/cli";
2+
import { runFrameworkGenerator } from "frameworks/index";
3+
import { detectPackageManager } from "helpers/packageManagers";
4+
import type { TemplateConfig } from "../../src/templates";
5+
import type { C3Context } from "types";
6+
7+
const { npm } = detectPackageManager();
8+
9+
const generate = async (ctx: C3Context) => {
10+
await runFrameworkGenerator(ctx, [ctx.project.name]);
11+
12+
logRaw("");
13+
};
14+
15+
const config: TemplateConfig = {
16+
configVersion: 1,
17+
id: "redwood",
18+
platform: "workers",
19+
frameworkCli: "create-rwsdk",
20+
displayName: "RedwoodSDK",
21+
generate,
22+
transformPackageJson: async () => ({
23+
scripts: {
24+
deploy: `${npm} run release`,
25+
preview: `${npm} run build && wrangler dev`,
26+
"cf-typegen": `wrangler types`,
27+
},
28+
}),
29+
devScript: "dev",
30+
deployScript: "release",
31+
previewScript: "preview",
32+
};
33+
export default config;

0 commit comments

Comments
 (0)