Skip to content

Commit d059f69

Browse files
Support Vike in autoconfig (#11549)
1 parent 8eede3f commit d059f69

File tree

16 files changed

+349
-35
lines changed

16 files changed

+349
-35
lines changed

.changeset/big-crabs-agree.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+
Support Vike in `--experimental` mode

.changeset/tiny-tires-write.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"wrangler": minor
3+
---
4+
5+
Support Vike in autoconfig

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"Untriaged",
5555
"userconfig",
5656
"versionless",
57+
"vike",
5758
"wasmvalue",
5859
"weakmap",
5960
"weakset",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ describe("Create Cloudflare CLI", () => {
555555
npm create cloudflare -- --framework svelte -- --types=ts
556556
pnpm create cloudflare --framework svelte -- --types=ts
557557
Allowed Values:
558-
analog, angular, astro, docusaurus, gatsby, next, nuxt, qwik, react, react-router, redwood, solid, svelte, tanstack-start, vue
558+
analog, angular, astro, docusaurus, gatsby, next, nuxt, qwik, react, react-router, redwood, solid, svelte, tanstack-start, vike, vue
559559
--platform=<value>
560560
Whether the application should be deployed to Pages or Workers. This is only applicable for Frameworks templates that support both Pages and Workers.
561561
Allowed Values:

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -992,6 +992,28 @@ function getExperimentalFrameworkTestConfig(
992992
nodeCompat: true,
993993
verifyTypes: false,
994994
},
995+
{
996+
name: "vike",
997+
testCommitMessage: true,
998+
timeout: LONG_TIMEOUT,
999+
unsupportedOSs: ["win32"],
1000+
verifyDeploy: {
1001+
route: "/",
1002+
expectedText: "Vike",
1003+
},
1004+
verifyPreview: {
1005+
route: "/",
1006+
expectedText: "Vike",
1007+
},
1008+
nodeCompat: false,
1009+
promptHandlers: [
1010+
{
1011+
matcher: /Select a UI framework:/,
1012+
input: [keys.enter],
1013+
},
1014+
],
1015+
verifyTypes: false,
1016+
},
9951017
];
9961018
}
9971019

packages/create-cloudflare/src/templates.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import solidTemplate from "templates/solid/c3";
4646
import svelteTemplate from "templates/svelte/c3";
4747
import tanStackStartTemplate from "templates/tanstack-start/c3";
4848
import vikeTemplate from "templates/vike/c3";
49+
import vikeExperimentalTemplate from "templates/vike/experimental-c3";
4950
import vueTemplate from "templates/vue/c3";
5051
import wakuTemplate from "templates/waku/c3";
5152
import { isInsideGitRepo } from "./git";
@@ -252,6 +253,7 @@ export function getFrameworkMap({ experimental = false }): TemplateMap {
252253
solid: solidTemplate,
253254
svelte: svelteTemplate,
254255
"tanstack-start": tanStackStartTemplate,
256+
vike: vikeExperimentalTemplate,
255257
vue: vueTemplate,
256258
};
257259
} else {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
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+
// Note: the vike create CLI supports a `--cloudflare` argument for creating cloudflare-ready
10+
// projects, that works great but here we don't want to use that because we do want to
11+
// exercise the general autoconfig/`wrangler setup` functionality (which amongst other
12+
// things lets up ensure that we can support the migration of existing vike projects)
13+
"--no-git",
14+
]);
15+
16+
logRaw(""); // newline
17+
};
18+
19+
const config: TemplateConfig = {
20+
configVersion: 1,
21+
id: "vike",
22+
platform: "workers",
23+
frameworkCli: "create-vike",
24+
displayName: "Vike",
25+
generate,
26+
devScript: "dev",
27+
deployScript: "deploy",
28+
previewScript: "preview",
29+
};
30+
export default config;

packages/wrangler/src/__tests__/autoconfig/get-installed-package-version.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { seed } from "@cloudflare/workers-utils/test-helpers";
22
import { describe, expect, test } from "vitest";
3-
import { getInstalledPackageVersion } from "../../autoconfig/frameworks";
3+
import { getInstalledPackageVersion } from "../../autoconfig/frameworks/utils/packages";
44
import { runInTempDir } from "../helpers/run-in-tmp";
55

66
describe("getInstalledPackageVersion()", () => {

packages/wrangler/src/__tests__/deploy.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ import {
3131
vi,
3232
} from "vitest";
3333
import { getDetailsForAutoConfig } from "../autoconfig/details";
34-
import { getInstalledPackageVersion } from "../autoconfig/frameworks";
3534
import { Static } from "../autoconfig/frameworks/static";
35+
import { getInstalledPackageVersion } from "../autoconfig/frameworks/utils/packages";
3636
import { runAutoConfig } from "../autoconfig/run";
3737
import { printBundleSize } from "../deployment-bundle/bundle-reporter";
3838
import { clearOutputFilePath } from "../output";
@@ -121,8 +121,8 @@ vi.mock("../package-manager", async (importOriginal) => ({
121121

122122
vi.mock("../autoconfig/details");
123123
vi.mock("../autoconfig/run");
124-
125124
vi.mock("../autoconfig/frameworks");
125+
vi.mock("../autoconfig/frameworks/utils/packages");
126126
vi.mock("../autoconfig/c3-vendor/command");
127127

128128
describe("deploy", () => {

packages/wrangler/src/autoconfig/frameworks/analog.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import * as recast from "recast";
77
import semiver from "semiver";
88
import { getDevCompatibilityDate } from "../../utils/compatibility-date";
99
import { mergeObjectProperties, transformFile } from "../c3-vendor/codemod";
10-
import { Framework, getInstalledPackageVersion } from ".";
10+
import { getInstalledPackageVersion } from "./utils/packages";
11+
import { Framework } from ".";
1112
import type { ConfigurationOptions, ConfigurationResults } from ".";
1213

1314
export class Analog extends Framework {

0 commit comments

Comments
 (0)