create-cloudflare 2.46.2 → 2.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +196 -162
- package/package.json +4 -4
- package/templates/analog/c3.ts +0 -24
- package/templates/analog/templates/env.d.ts +1 -1
- package/templates/angular/pages/c3.ts +3 -3
- package/templates/angular/pages/templates/wrangler.jsonc +5 -0
- package/templates/angular/workers/c3.ts +1 -0
- package/templates/astro/workers/templates/js/wrangler.jsonc +2 -1
- package/templates/astro/workers/templates/ts/wrangler.jsonc +2 -1
- package/templates/common/ts/tsconfig.json +0 -3
- package/templates/docusaurus/pages/c3.ts +1 -0
- package/templates/docusaurus/workers/c3.ts +1 -0
- package/templates/gatsby/pages/c3.ts +1 -0
- package/templates/gatsby/workers/c3.ts +1 -0
- package/templates/hello-world/ts/test/index.spec.ts +0 -1
- package/templates/hello-world/ts/test/tsconfig.json +1 -1
- package/templates/hello-world/ts/tsconfig.json +0 -2
- package/templates/hello-world-durable-object/ts/tsconfig.json +0 -2
- package/templates/hello-world-durable-object-with-assets/ts/tsconfig.json +0 -2
- package/templates/hello-world-with-assets/js/wrangler.jsonc +2 -1
- package/templates/hello-world-with-assets/ts/test/tsconfig.json +1 -1
- package/templates/hello-world-with-assets/ts/tsconfig.json +0 -2
- package/templates/hello-world-with-assets/ts/wrangler.jsonc +2 -1
- package/templates/hono/pages/c3.ts +4 -1
- package/templates/hono/workers/c3.ts +3 -1
- package/templates/next/pages/c3.ts +6 -10
- package/templates/next/workers/c3.ts +7 -5
- package/templates/nuxt/pages/c3.ts +2 -26
- package/templates/nuxt/pages/templates/env.d.ts +1 -1
- package/templates/nuxt/workers/c3.ts +2 -26
- package/templates/nuxt/workers/templates/env.d.ts +1 -1
- package/templates/openapi/ts/tsconfig.json +0 -1
- package/templates/queues/ts/tsconfig.json +0 -2
- package/templates/qwik/pages/c3.ts +1 -0
- package/templates/qwik/workers/c3.ts +1 -0
- package/templates/qwik/workers/templates/wrangler.jsonc +2 -1
- package/templates/react/pages/c3.ts +4 -2
- package/templates/react/pages/templates/wrangler.jsonc +5 -0
- package/templates/react/workers/ts/tsconfig.worker.json +1 -1
- package/templates/react-router/c3.ts +0 -12
- package/templates/remix/pages/c3.ts +1 -0
- package/templates/remix/pages/templates/worker-configuration.d.ts +1 -1
- package/templates/remix/workers/c3.ts +1 -0
- package/templates/scheduled/ts/tsconfig.json +0 -2
- package/templates/solid/c3.ts +1 -0
- package/templates/svelte/pages/c3.ts +3 -3
- package/templates/svelte/workers/c3.ts +3 -3
- package/templates/vue/pages/c3.ts +5 -3
- package/templates/vue/pages/templates/wrangler.jsonc +5 -0
- package/templates/vue/workers/ts/tsconfig.worker.json +1 -1
- package/templates-experimental/solid/c3.ts +1 -1
- package/templates/analog/templates/worker-configuration.d.ts +0 -4
- package/templates/astro/workers/templates/ts/worker-configuration.d.ts +0 -4
- package/templates/common/ts/worker-configuration.d.ts +0 -4
- package/templates/hello-world/ts/worker-configuration.d.ts +0 -8
- package/templates/hello-world-durable-object/ts/worker-configuration.d.ts +0 -7
- package/templates/hello-world-durable-object-with-assets/ts/worker-configuration.d.ts +0 -8
- package/templates/hello-world-with-assets/ts/worker-configuration.d.ts +0 -7
- package/templates/hono/pages/templates/worker-configuration.d.ts +0 -4
- package/templates/hono/workers/templates/worker-configuration.d.ts +0 -4
- package/templates/next/pages/env.d.ts +0 -5
- package/templates/next/workers/templates/cloudflare-env.d.ts +0 -5
- package/templates/nuxt/pages/templates/worker-configuration.d.ts +0 -4
- package/templates/nuxt/workers/templates/worker-configuration.d.ts +0 -4
- package/templates/openapi/ts/worker-configuration.d.ts +0 -4
- package/templates/queues/ts/worker-configuration.d.ts +0 -5
- package/templates/react/workers/ts/worker-configuration.d.ts +0 -5
- package/templates/react-router/templates/worker-configuration.d.ts +0 -8
- package/templates/scheduled/ts/worker-configuration.d.ts +0 -4
- package/templates/vue/workers/ts/worker-configuration.d.ts +0 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-cloudflare",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.47.1",
|
|
4
4
|
"description": "A CLI for creating and deploying new applications to Cloudflare.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@babel/parser": "^7.21.3",
|
|
31
31
|
"@babel/types": "^7.21.4",
|
|
32
32
|
"@clack/prompts": "^0.6.3",
|
|
33
|
-
"@cloudflare/workers-types": "^4.
|
|
33
|
+
"@cloudflare/workers-types": "^4.20250508.0",
|
|
34
34
|
"@iarna/toml": "^3.0.0",
|
|
35
35
|
"@types/command-exists": "^1.2.0",
|
|
36
36
|
"@types/cross-spawn": "^6.0.2",
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"@cloudflare/cli": "1.1.1",
|
|
74
74
|
"@cloudflare/eslint-config-worker": "1.1.0",
|
|
75
75
|
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
76
|
-
"@cloudflare/vite-plugin": "1.
|
|
76
|
+
"@cloudflare/vite-plugin": "1.2.1",
|
|
77
77
|
"@cloudflare/workers-tsconfig": "0.0.0",
|
|
78
|
-
"wrangler": "4.
|
|
78
|
+
"wrangler": "4.15.1"
|
|
79
79
|
},
|
|
80
80
|
"engines": {
|
|
81
81
|
"node": ">=18.14.1"
|
package/templates/analog/c3.ts
CHANGED
|
@@ -3,8 +3,6 @@ import { brandColor, dim } from "@cloudflare/cli/colors";
|
|
|
3
3
|
import { spinner } from "@cloudflare/cli/interactive";
|
|
4
4
|
import { runFrameworkGenerator } from "frameworks/index";
|
|
5
5
|
import { loadTemplateSnippets, transformFile } from "helpers/codemod";
|
|
6
|
-
import { getLatestTypesEntrypoint } from "helpers/compatDate";
|
|
7
|
-
import { readFile, writeFile } from "helpers/files";
|
|
8
6
|
import { detectPackageManager } from "helpers/packageManagers";
|
|
9
7
|
import { installPackages } from "helpers/packages";
|
|
10
8
|
import * as recast from "recast";
|
|
@@ -40,28 +38,6 @@ const configure = async (ctx: C3Context) => {
|
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
updateViteConfig(ctx);
|
|
43
|
-
updateEnvTypes(ctx);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const updateEnvTypes = (ctx: C3Context) => {
|
|
47
|
-
const filepath = "env.d.ts";
|
|
48
|
-
|
|
49
|
-
const s = spinner();
|
|
50
|
-
s.start(`Updating ${filepath}`);
|
|
51
|
-
|
|
52
|
-
let file = readFile(filepath);
|
|
53
|
-
|
|
54
|
-
let typesEntrypoint = `@cloudflare/workers-types`;
|
|
55
|
-
const latestEntrypoint = getLatestTypesEntrypoint(ctx);
|
|
56
|
-
if (latestEntrypoint) {
|
|
57
|
-
typesEntrypoint += `/${latestEntrypoint}`;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Replace placeholder with actual types entrypoint
|
|
61
|
-
file = file.replace("WORKERS_TYPES_ENTRYPOINT", typesEntrypoint);
|
|
62
|
-
writeFile("env.d.ts", file);
|
|
63
|
-
|
|
64
|
-
s.stop(`${brandColor(`updated`)} ${dim(`\`${filepath}\``)}`);
|
|
65
41
|
};
|
|
66
42
|
|
|
67
43
|
const updateViteConfig = (ctx: C3Context) => {
|
|
@@ -3,7 +3,6 @@ import { logRaw } from "@cloudflare/cli";
|
|
|
3
3
|
import { brandColor, dim } from "@cloudflare/cli/colors";
|
|
4
4
|
import { spinner } from "@cloudflare/cli/interactive";
|
|
5
5
|
import { runFrameworkGenerator } from "frameworks/index";
|
|
6
|
-
import { compatDateFlag } from "helpers/compatDate";
|
|
7
6
|
import { readFile, readJSON, writeFile } from "helpers/files";
|
|
8
7
|
import { detectPackageManager } from "helpers/packageManagers";
|
|
9
8
|
import { installPackages } from "helpers/packages";
|
|
@@ -107,10 +106,11 @@ const config: TemplateConfig = {
|
|
|
107
106
|
configure,
|
|
108
107
|
transformPackageJson: async () => ({
|
|
109
108
|
scripts: {
|
|
110
|
-
start: `${npm} run build && wrangler pages dev
|
|
109
|
+
start: `${npm} run build && wrangler pages dev`,
|
|
111
110
|
build: `ng build && ${npm} run process`,
|
|
112
111
|
process: "node ./tools/copy-files.mjs",
|
|
113
|
-
deploy: `${npm} run build && wrangler pages deploy
|
|
112
|
+
deploy: `${npm} run build && wrangler pages deploy`,
|
|
113
|
+
"cf-typegen": `wrangler types`,
|
|
114
114
|
},
|
|
115
115
|
}),
|
|
116
116
|
};
|
|
@@ -16,9 +16,6 @@
|
|
|
16
16
|
/* Enable importing .json files */
|
|
17
17
|
"resolveJsonModule": true,
|
|
18
18
|
|
|
19
|
-
/* Specify type package names to be included without being referenced in a source file. */
|
|
20
|
-
"types": ["@cloudflare/workers-types"],
|
|
21
|
-
|
|
22
19
|
/* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
|
|
23
20
|
"allowJs": true,
|
|
24
21
|
/* Enable error reporting in type-checked JavaScript files. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "../tsconfig.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"types": ["@cloudflare/
|
|
4
|
+
"types": ["@cloudflare/vitest-pool-workers"]
|
|
5
5
|
},
|
|
6
6
|
"include": ["./**/*.ts", "../worker-configuration.d.ts"],
|
|
7
7
|
"exclude": []
|
|
@@ -13,8 +13,6 @@
|
|
|
13
13
|
"module": "es2022",
|
|
14
14
|
/* Specify how TypeScript looks up a file from a given module specifier. */
|
|
15
15
|
"moduleResolution": "Bundler",
|
|
16
|
-
/* Specify type package names to be included without being referenced in a source file. */
|
|
17
|
-
"types": ["@cloudflare/workers-types"],
|
|
18
16
|
/* Enable importing .json files */
|
|
19
17
|
"resolveJsonModule": true,
|
|
20
18
|
|
|
@@ -13,8 +13,6 @@
|
|
|
13
13
|
"module": "es2022",
|
|
14
14
|
/* Specify how TypeScript looks up a file from a given module specifier. */
|
|
15
15
|
"moduleResolution": "node",
|
|
16
|
-
/* Specify type package names to be included without being referenced in a source file. */
|
|
17
|
-
"types": ["@cloudflare/workers-types"],
|
|
18
16
|
/* Enable importing .json files */
|
|
19
17
|
"resolveJsonModule": true,
|
|
20
18
|
|
|
@@ -13,8 +13,6 @@
|
|
|
13
13
|
"module": "es2022",
|
|
14
14
|
/* Specify how TypeScript looks up a file from a given module specifier. */
|
|
15
15
|
"moduleResolution": "node",
|
|
16
|
-
/* Specify type package names to be included without being referenced in a source file. */
|
|
17
|
-
"types": ["@cloudflare/workers-types"],
|
|
18
16
|
/* Enable importing .json files */
|
|
19
17
|
"resolveJsonModule": true,
|
|
20
18
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "../tsconfig.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"types": ["@cloudflare/
|
|
4
|
+
"types": ["@cloudflare/vitest-pool-workers"]
|
|
5
5
|
},
|
|
6
6
|
"include": ["./**/*.ts", "../worker-configuration.d.ts"],
|
|
7
7
|
"exclude": []
|
|
@@ -13,8 +13,6 @@
|
|
|
13
13
|
"module": "es2022",
|
|
14
14
|
/* Specify how TypeScript looks up a file from a given module specifier. */
|
|
15
15
|
"moduleResolution": "Bundler",
|
|
16
|
-
/* Specify type package names to be included without being referenced in a source file. */
|
|
17
|
-
"types": ["@cloudflare/workers-types"],
|
|
18
16
|
/* Enable importing .json files */
|
|
19
17
|
"resolveJsonModule": true,
|
|
20
18
|
|
|
@@ -19,6 +19,8 @@ const generate = async (ctx: C3Context) => {
|
|
|
19
19
|
logRaw(""); // newline
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
const envInterfaceName = "CloudflareBindings";
|
|
23
|
+
|
|
22
24
|
const config: TemplateConfig = {
|
|
23
25
|
configVersion: 1,
|
|
24
26
|
id: "hono",
|
|
@@ -33,12 +35,13 @@ const config: TemplateConfig = {
|
|
|
33
35
|
generate,
|
|
34
36
|
transformPackageJson: async () => ({
|
|
35
37
|
scripts: {
|
|
36
|
-
"cf-typegen":
|
|
38
|
+
"cf-typegen": `wrangler types --env-interface ${envInterfaceName}`,
|
|
37
39
|
preview: "vite build && wrangler pages dev",
|
|
38
40
|
},
|
|
39
41
|
}),
|
|
40
42
|
devScript: "dev",
|
|
41
43
|
deployScript: "deploy",
|
|
42
44
|
previewScript: "preview",
|
|
45
|
+
envInterfaceName,
|
|
43
46
|
};
|
|
44
47
|
export default config;
|
|
@@ -19,6 +19,7 @@ const generate = async (ctx: C3Context) => {
|
|
|
19
19
|
logRaw(""); // newline
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
const envInterfaceName = "CloudflareBindings";
|
|
22
23
|
const config: TemplateConfig = {
|
|
23
24
|
configVersion: 1,
|
|
24
25
|
id: "hono",
|
|
@@ -32,11 +33,12 @@ const config: TemplateConfig = {
|
|
|
32
33
|
generate,
|
|
33
34
|
transformPackageJson: async () => ({
|
|
34
35
|
scripts: {
|
|
35
|
-
"cf-typegen":
|
|
36
|
+
"cf-typegen": `wrangler types --env-interface ${envInterfaceName}`,
|
|
36
37
|
},
|
|
37
38
|
}),
|
|
38
39
|
devScript: "dev",
|
|
39
40
|
deployScript: "deploy",
|
|
40
41
|
previewScript: "dev",
|
|
42
|
+
envInterfaceName,
|
|
41
43
|
};
|
|
42
44
|
export default config;
|
|
@@ -75,14 +75,6 @@ const configure = async (ctx: C3Context) => {
|
|
|
75
75
|
|
|
76
76
|
const usesTs = usesTypescript(ctx);
|
|
77
77
|
|
|
78
|
-
if (usesTs) {
|
|
79
|
-
copyFile(
|
|
80
|
-
join(getTemplatePath(ctx), "env.d.ts"),
|
|
81
|
-
join(projectPath, "env.d.ts"),
|
|
82
|
-
);
|
|
83
|
-
updateStatus("Created an env.d.ts file");
|
|
84
|
-
}
|
|
85
|
-
|
|
86
78
|
const installEslintPlugin = await shouldInstallNextOnPagesEslintPlugin(ctx);
|
|
87
79
|
|
|
88
80
|
if (installEslintPlugin) {
|
|
@@ -145,7 +137,6 @@ export const writeEslintrc = async (ctx: C3Context): Promise<void> => {
|
|
|
145
137
|
const addDevDependencies = async (installEslintPlugin: boolean) => {
|
|
146
138
|
const packages = [
|
|
147
139
|
"@cloudflare/next-on-pages@1",
|
|
148
|
-
"@cloudflare/workers-types",
|
|
149
140
|
"vercel",
|
|
150
141
|
...(installEslintPlugin ? ["eslint-plugin-next-on-pages"] : []),
|
|
151
142
|
];
|
|
@@ -156,6 +147,9 @@ const addDevDependencies = async (installEslintPlugin: boolean) => {
|
|
|
156
147
|
});
|
|
157
148
|
};
|
|
158
149
|
|
|
150
|
+
const envInterfaceName = "CloudflareEnv";
|
|
151
|
+
const typesPath = "./env.d.ts";
|
|
152
|
+
|
|
159
153
|
export default {
|
|
160
154
|
configVersion: 1,
|
|
161
155
|
id: "next",
|
|
@@ -213,7 +207,7 @@ export default {
|
|
|
213
207
|
preview: `${pagesBuildRunCommand} && wrangler pages dev`,
|
|
214
208
|
deploy: `${pagesBuildRunCommand} && wrangler pages deploy`,
|
|
215
209
|
...(usesTypescript(ctx) && {
|
|
216
|
-
"cf-typegen": `wrangler types --env-interface
|
|
210
|
+
"cf-typegen": `wrangler types --env-interface ${envInterfaceName} ${typesPath}`,
|
|
217
211
|
}),
|
|
218
212
|
},
|
|
219
213
|
};
|
|
@@ -222,4 +216,6 @@ export default {
|
|
|
222
216
|
previewScript: "preview",
|
|
223
217
|
deployScript: "deploy",
|
|
224
218
|
compatibilityFlags: ["nodejs_compat"],
|
|
219
|
+
typesPath,
|
|
220
|
+
envInterfaceName,
|
|
225
221
|
} as TemplateConfig;
|
|
@@ -11,7 +11,7 @@ const generate = async (ctx: C3Context) => {
|
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
const configure = async (ctx: C3Context) => {
|
|
14
|
-
await installPackages(["@opennextjs/cloudflare
|
|
14
|
+
await installPackages(["@opennextjs/cloudflare@^1.0.2"], {
|
|
15
15
|
startText: "Adding the Cloudflare adapter",
|
|
16
16
|
doneText: `${brandColor(`installed`)} @opennextjs/cloudflare)}`,
|
|
17
17
|
});
|
|
@@ -42,13 +42,14 @@ const updateNextConfig = (usesTs: boolean) => {
|
|
|
42
42
|
s.stop(`${brandColor(`updated`)} ${dim(`\`${configFile}\``)}`);
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
+
const envInterfaceName = "CloudflareBindings";
|
|
46
|
+
const typesPath = "./cloudflare-env.d.ts";
|
|
45
47
|
export default {
|
|
46
48
|
configVersion: 1,
|
|
47
49
|
id: "next",
|
|
48
50
|
frameworkCli: "create-next-app",
|
|
49
|
-
frameworkCliPinnedVersion: "~15.3.0",
|
|
50
51
|
platform: "workers",
|
|
51
|
-
displayName: "Next.js
|
|
52
|
+
displayName: "Next.js",
|
|
52
53
|
path: "templates/next/workers",
|
|
53
54
|
copyFiles: {
|
|
54
55
|
path: "./templates",
|
|
@@ -59,11 +60,12 @@ export default {
|
|
|
59
60
|
scripts: {
|
|
60
61
|
deploy: `opennextjs-cloudflare build && opennextjs-cloudflare deploy`,
|
|
61
62
|
preview: `opennextjs-cloudflare build && opennextjs-cloudflare preview`,
|
|
62
|
-
"cf-typegen": `wrangler types --env-interface
|
|
63
|
+
"cf-typegen": `wrangler types --env-interface ${envInterfaceName} ${typesPath}`,
|
|
63
64
|
},
|
|
64
65
|
}),
|
|
65
66
|
devScript: "dev",
|
|
66
67
|
previewScript: "preview",
|
|
67
68
|
deployScript: "deploy",
|
|
68
|
-
|
|
69
|
+
typesPath,
|
|
70
|
+
envInterfaceName,
|
|
69
71
|
} as TemplateConfig;
|
|
@@ -3,8 +3,7 @@ import { brandColor, dim } from "@cloudflare/cli/colors";
|
|
|
3
3
|
import { spinner } from "@cloudflare/cli/interactive";
|
|
4
4
|
import { runFrameworkGenerator } from "frameworks/index";
|
|
5
5
|
import { mergeObjectProperties, transformFile } from "helpers/codemod";
|
|
6
|
-
import {
|
|
7
|
-
import { readFile, writeFile } from "helpers/files";
|
|
6
|
+
import { writeFile } from "helpers/files";
|
|
8
7
|
import { detectPackageManager } from "helpers/packageManagers";
|
|
9
8
|
import { installPackages } from "helpers/packages";
|
|
10
9
|
import * as recast from "recast";
|
|
@@ -30,7 +29,7 @@ const generate = async (ctx: C3Context) => {
|
|
|
30
29
|
logRaw(""); // newline
|
|
31
30
|
};
|
|
32
31
|
|
|
33
|
-
const configure = async (
|
|
32
|
+
const configure = async () => {
|
|
34
33
|
const packages = ["nitro-cloudflare-dev"];
|
|
35
34
|
|
|
36
35
|
// When using pnpm, explicitly add h3 package so the H3Event type declaration can be updated.
|
|
@@ -45,29 +44,6 @@ const configure = async (ctx: C3Context) => {
|
|
|
45
44
|
doneText: `${brandColor("installed")} ${dim(`via \`${npm} install\``)}`,
|
|
46
45
|
});
|
|
47
46
|
updateNuxtConfig();
|
|
48
|
-
|
|
49
|
-
updateEnvTypes(ctx);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const updateEnvTypes = (ctx: C3Context) => {
|
|
53
|
-
const filepath = "env.d.ts";
|
|
54
|
-
|
|
55
|
-
const s = spinner();
|
|
56
|
-
s.start(`Updating ${filepath}`);
|
|
57
|
-
|
|
58
|
-
let file = readFile(filepath);
|
|
59
|
-
|
|
60
|
-
let typesEntrypoint = `@cloudflare/workers-types`;
|
|
61
|
-
const latestEntrypoint = getLatestTypesEntrypoint(ctx);
|
|
62
|
-
if (latestEntrypoint) {
|
|
63
|
-
typesEntrypoint += `/${latestEntrypoint}`;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Replace placeholder with actual types entrypoint
|
|
67
|
-
file = file.replace("WORKERS_TYPES_ENTRYPOINT", typesEntrypoint);
|
|
68
|
-
writeFile("env.d.ts", file);
|
|
69
|
-
|
|
70
|
-
s.stop(`${brandColor(`updated`)} ${dim(`\`${filepath}\``)}`);
|
|
71
47
|
};
|
|
72
48
|
|
|
73
49
|
const updateNuxtConfig = () => {
|
|
@@ -3,8 +3,7 @@ import { brandColor, dim } from "@cloudflare/cli/colors";
|
|
|
3
3
|
import { spinner } from "@cloudflare/cli/interactive";
|
|
4
4
|
import { runFrameworkGenerator } from "frameworks/index";
|
|
5
5
|
import { mergeObjectProperties, transformFile } from "helpers/codemod";
|
|
6
|
-
import {
|
|
7
|
-
import { readFile, writeFile } from "helpers/files";
|
|
6
|
+
import { writeFile } from "helpers/files";
|
|
8
7
|
import { detectPackageManager } from "helpers/packageManagers";
|
|
9
8
|
import { installPackages } from "helpers/packages";
|
|
10
9
|
import * as recast from "recast";
|
|
@@ -30,7 +29,7 @@ const generate = async (ctx: C3Context) => {
|
|
|
30
29
|
logRaw(""); // newline
|
|
31
30
|
};
|
|
32
31
|
|
|
33
|
-
const configure = async (
|
|
32
|
+
const configure = async () => {
|
|
34
33
|
const packages = ["nitro-cloudflare-dev", "nitropack"];
|
|
35
34
|
|
|
36
35
|
// When using pnpm, explicitly add h3 package so the H3Event type declaration can be updated.
|
|
@@ -45,29 +44,6 @@ const configure = async (ctx: C3Context) => {
|
|
|
45
44
|
doneText: `${brandColor("installed")} ${dim(`via \`${npm} install\``)}`,
|
|
46
45
|
});
|
|
47
46
|
updateNuxtConfig();
|
|
48
|
-
|
|
49
|
-
updateEnvTypes(ctx);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const updateEnvTypes = (ctx: C3Context) => {
|
|
53
|
-
const filepath = "env.d.ts";
|
|
54
|
-
|
|
55
|
-
const s = spinner();
|
|
56
|
-
s.start(`Updating ${filepath}`);
|
|
57
|
-
|
|
58
|
-
let file = readFile(filepath);
|
|
59
|
-
|
|
60
|
-
let typesEntrypoint = `@cloudflare/workers-types`;
|
|
61
|
-
const latestEntrypoint = getLatestTypesEntrypoint(ctx);
|
|
62
|
-
if (latestEntrypoint) {
|
|
63
|
-
typesEntrypoint += `/${latestEntrypoint}`;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Replace placeholder with actual types entrypoint
|
|
67
|
-
file = file.replace("WORKERS_TYPES_ENTRYPOINT", typesEntrypoint);
|
|
68
|
-
writeFile("env.d.ts", file);
|
|
69
|
-
|
|
70
|
-
s.stop(`${brandColor(`updated`)} ${dim(`\`${filepath}\``)}`);
|
|
71
47
|
};
|
|
72
48
|
|
|
73
49
|
const updateNuxtConfig = () => {
|
|
@@ -13,8 +13,6 @@
|
|
|
13
13
|
"module": "es2022",
|
|
14
14
|
/* Specify how TypeScript looks up a file from a given module specifier. */
|
|
15
15
|
"moduleResolution": "node",
|
|
16
|
-
/* Specify type package names to be included without being referenced in a source file. */
|
|
17
|
-
"types": ["@cloudflare/workers-types"],
|
|
18
16
|
/* Enable importing .json files */
|
|
19
17
|
"resolveJsonModule": true,
|
|
20
18
|
|
|
@@ -49,11 +49,13 @@ const config: TemplateConfig = {
|
|
|
49
49
|
platform: "pages",
|
|
50
50
|
hidden: true,
|
|
51
51
|
path: "templates/react/pages",
|
|
52
|
+
copyFiles: { path: "./templates" },
|
|
52
53
|
generate,
|
|
53
54
|
transformPackageJson: async () => ({
|
|
54
55
|
scripts: {
|
|
55
|
-
deploy: `${npm} run build && wrangler pages deploy
|
|
56
|
-
preview: `${npm} run build && wrangler pages dev
|
|
56
|
+
deploy: `${npm} run build && wrangler pages deploy`,
|
|
57
|
+
preview: `${npm} run build && wrangler pages dev`,
|
|
58
|
+
"cf-typegen": `wrangler types`,
|
|
57
59
|
},
|
|
58
60
|
}),
|
|
59
61
|
devScript: "dev",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"extends": "./tsconfig.node.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
4
|
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.worker.tsbuildinfo",
|
|
5
|
-
"types": ["
|
|
5
|
+
"types": ["./worker-configuration.d.ts", "vite/client"],
|
|
6
6
|
},
|
|
7
7
|
"include": ["./worker-configuration.d.ts", "./worker"]
|
|
8
8
|
}
|
|
@@ -19,24 +19,12 @@ const generate = async (ctx: C3Context) => {
|
|
|
19
19
|
logRaw(""); // newline
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
// TODO: Uncomment this once @react-router/dev updates its peer dependency to Wrangler v4
|
|
23
|
-
// const configure = async () => {
|
|
24
|
-
// await installPackages(["wrangler@latest"], {
|
|
25
|
-
// dev: true,
|
|
26
|
-
// startText: "Updating the Wrangler version",
|
|
27
|
-
// doneText: `${brandColor(`updated`)} ${dim("wrangler@latest")}`,
|
|
28
|
-
// });
|
|
29
|
-
// };
|
|
30
|
-
|
|
31
22
|
const config: TemplateConfig = {
|
|
32
23
|
configVersion: 1,
|
|
33
24
|
id: "react-router",
|
|
34
25
|
platform: "workers",
|
|
35
26
|
frameworkCli: "create-react-router",
|
|
36
27
|
displayName: "React Router (formerly Remix)",
|
|
37
|
-
copyFiles: {
|
|
38
|
-
path: "./templates",
|
|
39
|
-
},
|
|
40
28
|
generate,
|
|
41
29
|
// configure,
|
|
42
30
|
transformPackageJson: async () => ({
|