Skip to content

Commit a75352b

Browse files
brilloutMattieTKjamesopstad
authored
C3: add Vike framework template (#11442)
* C3: add Vike framework template * add promptHandlers --------- Co-authored-by: Matt ‘TK’ Taylor <[email protected]> Co-authored-by: James Opstad <[email protected]>
1 parent 45480b1 commit a75352b

File tree

6 files changed

+58
-1
lines changed

6 files changed

+58
-1
lines changed

‎.changeset/sixty-hats-think.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"create-cloudflare": minor
3+
---
4+
5+
add Vike framework template

‎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, redwood, solid, svelte, tanstack-start, vue, waku
660+
analog, angular, astro, docusaurus, gatsby, hono, next, nuxt, qwik, react, react-router, redwood, solid, svelte, tanstack-start, vike, 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: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,27 @@ function getFrameworkTestConfig(pm: string): NamedFrameworkTestConfig[] {
618618
},
619619
nodeCompat: true,
620620
},
621+
{
622+
name: "vike",
623+
testCommitMessage: true,
624+
timeout: LONG_TIMEOUT,
625+
unsupportedOSs: ["win32"],
626+
verifyDeploy: {
627+
route: "/",
628+
expectedText: "Vike",
629+
},
630+
verifyPreview: {
631+
route: "/",
632+
expectedText: "Vike",
633+
},
634+
nodeCompat: false,
635+
promptHandlers: [
636+
{
637+
matcher: /Select a UI framework:/,
638+
input: [keys.enter],
639+
},
640+
],
641+
},
621642
];
622643
}
623644

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"create-rwsdk": "3.1.0",
1717
"create-react-router": "7.9.6",
1818
"create-solid": "0.6.11",
19+
"create-vike": "0.0.528",
1920
"create-vue": "3.18.3",
2021
"create-waku": "0.12.5-0.27.1-0",
2122
"@tanstack/create-start": "0.40.0",

‎packages/create-cloudflare/src/templates.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import scheduledTemplate from "templates/scheduled/c3";
4444
import solidTemplate from "templates/solid/c3";
4545
import svelteTemplate from "templates/svelte/c3";
4646
import tanStackStartTemplate from "templates/tanstack-start/c3";
47+
import vikeTemplate from "templates/vike/c3";
4748
import vueTemplate from "templates/vue/c3";
4849
import wakuTemplate from "templates/waku/c3";
4950
import { isInsideGitRepo } from "./git";
@@ -265,6 +266,7 @@ export function getFrameworkMap({ experimental = false }): TemplateMap {
265266
solid: solidTemplate,
266267
svelte: svelteTemplate,
267268
"tanstack-start": tanStackStartTemplate,
269+
vike: vikeTemplate,
268270
vue: vueTemplate,
269271
waku: wakuTemplate,
270272
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { logRaw } from "@cloudflare/cli";
2+
import { runFrameworkGenerator } from "frameworks/index";
3+
import type { TemplateConfig } from "../../src/templates";
4+
import type { C3Context } from "types";
5+
6+
const generate = async (ctx: C3Context) => {
7+
await runFrameworkGenerator(ctx, [
8+
ctx.project.name,
9+
"--cloudflare",
10+
// to prevent asking about git twice, just let c3 do it
11+
"--no-git",
12+
]);
13+
14+
logRaw(""); // newline
15+
};
16+
17+
const config: TemplateConfig = {
18+
configVersion: 1,
19+
id: "vike",
20+
platform: "workers",
21+
frameworkCli: "create-vike",
22+
displayName: "Vike",
23+
generate,
24+
devScript: "dev",
25+
deployScript: "deploy",
26+
previewScript: "preview",
27+
};
28+
export default config;

0 commit comments

Comments
 (0)