Skip to content

Commit 36ae02c

Browse files
authored
chore: graduate hono template (#8593)
* graduate hono * changeset
1 parent 9b86dba commit 36ae02c

File tree

15 files changed

+94
-94
lines changed

15 files changed

+94
-94
lines changed

.changeset/four-shirts-know.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"create-cloudflare": patch
3+
---
4+
5+
Graduate Hono + Workers assets template from experimental.
6+
7+
You will no longer need to include the --experimental flag to access this template.
8+
Also creates a hono template that uses the cloudflare-pages adapter.

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

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,6 @@ import { keys, LONG_TIMEOUT } from "../helpers";
22

33
export default function getFrameworkTestConfigExperimental() {
44
return {
5-
hono: {
6-
testCommitMessage: true,
7-
unsupportedOSs: ["win32"],
8-
verifyDeploy: {
9-
route: "/message",
10-
expectedText: "Hello Hono!",
11-
},
12-
verifyPreview: {
13-
route: "/message",
14-
expectedText: "Hello Hono!",
15-
},
16-
promptHandlers: [
17-
{
18-
matcher: /Do you want to install project dependencies\?/,
19-
input: [keys.enter],
20-
},
21-
],
22-
},
235
qwik: {
246
promptHandlers: [
257
{

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

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,15 +207,36 @@ export default function getFrameworkTestConfig(pm: string) {
207207
expectedText: "Gatsby!",
208208
},
209209
},
210-
hono: {
210+
"hono:pages": {
211+
argv: ["--platform", "pages"],
211212
testCommitMessage: true,
212213
unsupportedOSs: ["win32"],
213214
verifyDeploy: {
214215
route: "/",
215-
expectedText: "Hello Hono!",
216+
expectedText: "Hello!",
216217
},
217218
verifyPreview: {
218219
route: "/",
220+
expectedText: "Hello!",
221+
previewArgs: ["--host=127.0.0.1"],
222+
},
223+
promptHandlers: [
224+
{
225+
matcher: /Do you want to install project dependencies\?/,
226+
input: [keys.enter],
227+
},
228+
],
229+
},
230+
"hono:workers": {
231+
argv: ["--platform", "workers"],
232+
testCommitMessage: true,
233+
unsupportedOSs: ["win32"],
234+
verifyDeploy: {
235+
route: "/message",
236+
expectedText: "Hello Hono!",
237+
},
238+
verifyPreview: {
239+
route: "/message",
219240
expectedText: "Hello Hono!",
220241
},
221242
promptHandlers: [

packages/create-cloudflare/src/templates.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import {
1818
writeFile,
1919
writeJSON,
2020
} from "helpers/files";
21-
import honoTemplateExperimental from "templates-experimental/hono/c3";
2221
import nextTemplateExperimental from "templates-experimental/next/c3";
2322
import qwikTemplateExperimental from "templates-experimental/qwik/c3";
2423
import solidTemplateExperimental from "templates-experimental/solid/c3";
@@ -173,7 +172,6 @@ export type TemplateMap = Record<
173172
export function getFrameworkMap({ experimental = false }): TemplateMap {
174173
if (experimental) {
175174
return {
176-
hono: honoTemplateExperimental,
177175
next: nextTemplateExperimental,
178176
qwik: qwikTemplateExperimental,
179177
solid: solidTemplateExperimental,
Lines changed: 5 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,9 @@
1-
import { logRaw } from "@cloudflare/cli";
2-
import { brandColor, dim } from "@cloudflare/cli/colors";
3-
import { spinner } from "@cloudflare/cli/interactive";
4-
import { runFrameworkGenerator } from "frameworks/index";
5-
import { loadTemplateSnippets, transformFile } from "helpers/codemod";
6-
import { detectPackageManager } from "helpers/packageManagers";
7-
import type { TemplateConfig } from "../../src/templates";
8-
import type * as recast from "recast";
9-
import type { C3Context } from "types";
1+
import pages from "./pages/c3";
2+
import workers from "./workers/c3";
3+
import type { MultiPlatformTemplateConfig } from "../../src/templates";
104

11-
const generate = async (ctx: C3Context) => {
12-
const { name: pm } = detectPackageManager();
13-
14-
await runFrameworkGenerator(ctx, [
15-
ctx.project.name,
16-
"--template",
17-
"cloudflare-workers",
18-
"--install",
19-
"--pm",
20-
pm,
21-
]);
22-
23-
logRaw(""); // newline
24-
};
25-
26-
const configure = async (ctx: C3Context) => {
27-
const indexFile = "src/index.ts";
28-
29-
const s = spinner();
30-
s.start(`Updating \`${indexFile}\``);
31-
32-
const snippets = loadTemplateSnippets(ctx);
33-
34-
transformFile(indexFile, {
35-
visitVariableDeclarator(n) {
36-
if (n.node.id.type === "Identifier" && n.node.id.name === "app") {
37-
n.node.init = snippets
38-
.appDeclarationTs[0] as recast.types.namedTypes.NewExpression;
39-
40-
return false;
41-
}
42-
},
43-
});
44-
45-
s.stop(`${brandColor("updated")} \`${dim(indexFile)}\``);
46-
};
47-
48-
const config: TemplateConfig = {
49-
configVersion: 1,
50-
id: "hono",
51-
frameworkCli: "create-hono",
5+
const config: MultiPlatformTemplateConfig = {
526
displayName: "Hono",
53-
copyFiles: {
54-
path: "./templates",
55-
},
56-
platform: "workers",
57-
generate,
58-
configure,
59-
transformPackageJson: async () => ({
60-
scripts: {
61-
dev: "wrangler dev",
62-
deploy: "wrangler deploy --minify",
63-
"cf-typegen": "wrangler types --env-interface CloudflareBindings",
64-
},
65-
}),
66-
devScript: "dev",
67-
deployScript: "deploy",
68-
previewScript: "dev",
7+
platformVariants: { pages, workers },
698
};
709
export default config;
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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 generate = async (ctx: C3Context) => {
8+
const { name: pm } = detectPackageManager();
9+
10+
await runFrameworkGenerator(ctx, [
11+
ctx.project.name,
12+
"--template",
13+
"cloudflare-pages",
14+
"--install",
15+
"--pm",
16+
pm,
17+
]);
18+
19+
logRaw(""); // newline
20+
};
21+
22+
const config: TemplateConfig = {
23+
configVersion: 1,
24+
id: "hono",
25+
frameworkCli: "create-hono",
26+
displayName: "Hono",
27+
copyFiles: {
28+
path: "./templates",
29+
},
30+
path: "templates/hono/pages",
31+
platform: "pages",
32+
generate,
33+
transformPackageJson: async () => ({
34+
scripts: {
35+
"cf-typegen": "wrangler types --env-interface CloudflareBindings",
36+
},
37+
}),
38+
devScript: "dev",
39+
deployScript: "deploy",
40+
previewScript: "dev",
41+
};
42+
export default config;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Hono } from 'hono'
2+
import { renderer } from './renderer'
3+
4+
const app = new Hono<{ Bindings: CloudflareBindings }>();
5+
6+
app.use(renderer)
7+
8+
app.get('/', (c) => {
9+
return c.render(<h1>Hello!</h1>)
10+
})
11+
12+
export default app
File renamed without changes.

packages/create-cloudflare/templates/hono/templates/wrangler.jsonc renamed to packages/create-cloudflare/templates/hono/pages/templates/wrangler.jsonc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"name": "<TBD>",
33
"main": "src/index.ts",
44
"compatibility_date": "<TBD>",
5+
"pages_build_output_dir": "./dist",
56
"observability": {
67
"enabled": true
78
}
8-
}
9+
}

packages/create-cloudflare/templates/hono/snippets/appDeclaration.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)