create-cloudflare 2.72.12 → 2.73.0

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.
Files changed (60) hide show
  1. package/dist/cli.js +895 -628
  2. package/package.json +7 -7
  3. package/templates/analog/c3.ts +1 -0
  4. package/templates/angular/pages/c3.ts +1 -0
  5. package/templates/angular/workers/c3.ts +1 -0
  6. package/templates/django/c3.ts +19 -0
  7. package/templates/django/py/.python-version +1 -0
  8. package/templates/django/py/README.md +14 -0
  9. package/templates/django/py/__dot__gitignore +7 -0
  10. package/templates/django/py/package.json +13 -0
  11. package/templates/django/py/pyproject.toml +10 -0
  12. package/templates/django/py/src/django_app/__init__.py +0 -0
  13. package/templates/django/py/src/django_app/settings.py +11 -0
  14. package/templates/django/py/src/django_app/urls.py +9 -0
  15. package/templates/django/py/src/django_app/wsgi.py +7 -0
  16. package/templates/django/py/src/entry.py +12 -0
  17. package/templates/django/py/wrangler.jsonc +9 -0
  18. package/templates/docusaurus/pages/c3.ts +1 -0
  19. package/templates/docusaurus/workers/c3.ts +1 -0
  20. package/templates/fastapi/c3.ts +19 -0
  21. package/templates/fastapi/py/.python-version +1 -0
  22. package/templates/fastapi/py/README.md +14 -0
  23. package/templates/fastapi/py/__dot__gitignore +7 -0
  24. package/templates/fastapi/py/package.json +13 -0
  25. package/templates/fastapi/py/pyproject.toml +10 -0
  26. package/templates/fastapi/py/src/entry.py +14 -0
  27. package/templates/fastapi/py/wrangler.jsonc +9 -0
  28. package/templates/flask/c3.ts +19 -0
  29. package/templates/flask/py/.python-version +1 -0
  30. package/templates/flask/py/README.md +14 -0
  31. package/templates/flask/py/__dot__gitignore +7 -0
  32. package/templates/flask/py/package.json +13 -0
  33. package/templates/flask/py/pyproject.toml +10 -0
  34. package/templates/flask/py/src/entry.py +14 -0
  35. package/templates/flask/py/wrangler.jsonc +9 -0
  36. package/templates/gatsby/pages/c3.ts +1 -0
  37. package/templates/gatsby/workers/c3.ts +1 -0
  38. package/templates/hello-world-assets-only/c3.ts +1 -0
  39. package/templates/hono/pages/c3.ts +1 -0
  40. package/templates/hono/workers/c3.ts +1 -0
  41. package/templates/next/c3.ts +1 -0
  42. package/templates/next/experimental_c3.ts +1 -0
  43. package/templates/nuxt/pages/c3.ts +1 -0
  44. package/templates/nuxt/workers/c3.ts +1 -0
  45. package/templates/openapi/c3.ts +1 -0
  46. package/templates/pre-existing/c3.ts +1 -0
  47. package/templates/qwik/pages/c3.ts +1 -0
  48. package/templates/qwik/workers/c3.ts +1 -0
  49. package/templates/react/pages/c3.ts +1 -0
  50. package/templates/react-router/c3.ts +1 -0
  51. package/templates/redwood/c3.ts +1 -0
  52. package/templates/solid/c3.ts +1 -0
  53. package/templates/svelte/pages/c3.ts +1 -0
  54. package/templates/svelte/workers/c3.ts +1 -0
  55. package/templates/tanstack-start/c3.ts +1 -0
  56. package/templates/vike/c3.ts +1 -0
  57. package/templates/vike/experimental-c3.ts +1 -0
  58. package/templates/vue/pages/c3.ts +1 -0
  59. package/templates/waku/c3.ts +1 -0
  60. package/templates/waku/experimental-c3.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-cloudflare",
3
- "version": "2.72.12",
3
+ "version": "2.73.0",
4
4
  "description": "A CLI for creating and deploying new applications to Cloudflare.",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -31,7 +31,7 @@
31
31
  "@babel/parser": "^7.21.3",
32
32
  "@babel/types": "^7.21.4",
33
33
  "@clack/prompts": "^1.2.0",
34
- "@cloudflare/workers-types": "^5.20260923.1",
34
+ "@cloudflare/workers-types": "^5.20260926.1",
35
35
  "@types/command-exists": "^1.2.0",
36
36
  "@types/cross-spawn": "^6.0.2",
37
37
  "@types/deepmerge": "^2.2.0",
@@ -70,13 +70,13 @@
70
70
  "which-pm-runs": "^1.1.0",
71
71
  "wrap-ansi": "^9.0.0",
72
72
  "yargs": "^17.7.2",
73
- "@cloudflare/cli-shared-helpers": "0.1.38",
74
- "@cloudflare/mock-npm-registry": "0.0.0",
73
+ "@cloudflare/cli-shared-helpers": "0.2.0",
75
74
  "@cloudflare/shared-ast-primitives": "1.1.0",
75
+ "@cloudflare/mock-npm-registry": "0.0.0",
76
+ "@cloudflare/vite-plugin": "1.62.0",
76
77
  "@cloudflare/workers-tsconfig": "0.0.0",
77
- "@cloudflare/vite-plugin": "1.60.0",
78
- "wrangler": "4.139.0",
79
- "@cloudflare/workers-utils": "0.42.0"
78
+ "@cloudflare/workers-utils": "0.44.0",
79
+ "wrangler": "4.143.0"
80
80
  },
81
81
  "engines": {
82
82
  "node": ">=22.0.0"
@@ -77,6 +77,7 @@ const config: TemplateConfig = {
77
77
  frameworkCli: "create-analog",
78
78
  displayName: "Analog",
79
79
  platform: "workers",
80
+ languages: ["ts"],
80
81
  copyFiles: {
81
82
  path: "./templates",
82
83
  },
@@ -90,6 +90,7 @@ const config: TemplateConfig = {
90
90
  frameworkCli: "@angular/create",
91
91
  displayName: "Angular",
92
92
  platform: "pages",
93
+ languages: ["ts"],
93
94
  hidden: true,
94
95
  copyFiles: {
95
96
  path: "./templates",
@@ -88,6 +88,7 @@ const config: TemplateConfig = {
88
88
  frameworkCli: "@angular/create",
89
89
  displayName: "Angular",
90
90
  platform: "workers",
91
+ languages: ["ts"],
91
92
  copyFiles: {
92
93
  path: "./templates",
93
94
  },
@@ -0,0 +1,19 @@
1
+ import type { TemplateConfig } from "../../src/templates";
2
+
3
+ export default {
4
+ configVersion: 1,
5
+ id: "django",
6
+ displayName: "Django",
7
+ description: "A Django application running on Cloudflare Workers",
8
+ platform: "workers",
9
+ copyFiles: {
10
+ variants: {
11
+ python: {
12
+ path: "./py",
13
+ },
14
+ },
15
+ },
16
+ workersTypes: "none",
17
+ devScript: "dev",
18
+ deployScript: "deploy",
19
+ } satisfies TemplateConfig;
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,14 @@
1
+ # Django on Cloudflare Workers
2
+
3
+ Install dependencies and start local development with uv:
4
+
5
+ ```sh
6
+ uv sync
7
+ uv run pywrangler dev
8
+ ```
9
+
10
+ Deploy the Worker with:
11
+
12
+ ```sh
13
+ uv run pywrangler deploy
14
+ ```
@@ -0,0 +1,7 @@
1
+ node_modules/
2
+ .wrangler/
3
+ .venv/
4
+ .venv-workers/
5
+ python_modules/
6
+ __pycache__/
7
+ *.py[cod]
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "<PACKAGE_NAME>",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "deploy": "uv run pywrangler deploy",
7
+ "dev": "uv run pywrangler dev",
8
+ "start": "uv run pywrangler dev"
9
+ },
10
+ "devDependencies": {
11
+ "wrangler": "^4.131.1"
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ [project]
2
+ name = "<PROJECT_NAME>"
3
+ version = "0.1.0"
4
+ description = "A Django application running on Cloudflare Workers"
5
+ readme = "README.md"
6
+ requires-python = ">=3.13"
7
+ dependencies = ["django"]
8
+
9
+ [dependency-groups]
10
+ dev = ["workers-py", "workers-runtime-sdk"]
File without changes
@@ -0,0 +1,11 @@
1
+ # Replace this before enabling signing, sessions, authentication, or CSRF features.
2
+ SECRET_KEY = "unused"
3
+ DEBUG = False
4
+ # Cloudflare routing validates the hostname before invoking this Worker.
5
+ ALLOWED_HOSTS = ["*"]
6
+
7
+ INSTALLED_APPS = []
8
+ MIDDLEWARE = []
9
+ ROOT_URLCONF = "django_app.urls"
10
+ TEMPLATES = []
11
+ WSGI_APPLICATION = "django_app.wsgi.application"
@@ -0,0 +1,9 @@
1
+ from django.http import HttpResponse
2
+ from django.urls import path
3
+
4
+
5
+ def root(request):
6
+ return HttpResponse("Hello from Django on Cloudflare Workers!")
7
+
8
+
9
+ urlpatterns = [path("", root)]
@@ -0,0 +1,7 @@
1
+ import os
2
+
3
+ from django.core.wsgi import get_wsgi_application
4
+
5
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_app.settings")
6
+
7
+ application = get_wsgi_application()
@@ -0,0 +1,12 @@
1
+ import os
2
+
3
+ from workers import WorkerEntrypoint, wsgi
4
+
5
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_app.settings")
6
+
7
+ from django_app.wsgi import application
8
+
9
+
10
+ class Default(WorkerEntrypoint):
11
+ async def fetch(self, request):
12
+ return await wsgi.fetch(application, request, self.env)
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "<WORKER_NAME>",
3
+ "main": "src/entry.py",
4
+ "compatibility_date": "<COMPATIBILITY_DATE>",
5
+ "compatibility_flags": ["python_workers"],
6
+ "observability": {
7
+ "enabled": true,
8
+ },
9
+ }
@@ -14,6 +14,7 @@ const config: TemplateConfig = {
14
14
  id: "docusaurus",
15
15
  frameworkCli: "create-docusaurus",
16
16
  platform: "pages",
17
+ languages: ["js", "ts"],
17
18
  hidden: true,
18
19
  displayName: "Docusaurus",
19
20
  path: "templates/docusaurus/pages",
@@ -14,6 +14,7 @@ const config: TemplateConfig = {
14
14
  id: "docusaurus",
15
15
  frameworkCli: "create-docusaurus",
16
16
  platform: "workers",
17
+ languages: ["js", "ts"],
17
18
  displayName: "Docusaurus",
18
19
  copyFiles: {
19
20
  path: "./templates",
@@ -0,0 +1,19 @@
1
+ import type { TemplateConfig } from "../../src/templates";
2
+
3
+ export default {
4
+ configVersion: 1,
5
+ id: "fastapi",
6
+ displayName: "FastAPI",
7
+ description: "A FastAPI application running on Cloudflare Workers",
8
+ platform: "workers",
9
+ copyFiles: {
10
+ variants: {
11
+ python: {
12
+ path: "./py",
13
+ },
14
+ },
15
+ },
16
+ workersTypes: "none",
17
+ devScript: "dev",
18
+ deployScript: "deploy",
19
+ } satisfies TemplateConfig;
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,14 @@
1
+ # FastAPI on Cloudflare Workers
2
+
3
+ Install dependencies and start local development with uv:
4
+
5
+ ```sh
6
+ uv sync
7
+ uv run pywrangler dev
8
+ ```
9
+
10
+ Deploy the Worker with:
11
+
12
+ ```sh
13
+ uv run pywrangler deploy
14
+ ```
@@ -0,0 +1,7 @@
1
+ node_modules/
2
+ .wrangler/
3
+ .venv/
4
+ .venv-workers/
5
+ python_modules/
6
+ __pycache__/
7
+ *.py[cod]
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "<PACKAGE_NAME>",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "deploy": "uv run pywrangler deploy",
7
+ "dev": "uv run pywrangler dev",
8
+ "start": "uv run pywrangler dev"
9
+ },
10
+ "devDependencies": {
11
+ "wrangler": "^4.131.1"
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ [project]
2
+ name = "<PROJECT_NAME>"
3
+ version = "0.1.0"
4
+ description = "A FastAPI application running on Cloudflare Workers"
5
+ readme = "README.md"
6
+ requires-python = ">=3.13"
7
+ dependencies = ["fastapi"]
8
+
9
+ [dependency-groups]
10
+ dev = ["workers-py", "workers-runtime-sdk"]
@@ -0,0 +1,14 @@
1
+ from fastapi import FastAPI
2
+ from workers import WorkerEntrypoint, asgi
3
+
4
+ app = FastAPI()
5
+
6
+
7
+ @app.get("/")
8
+ async def root():
9
+ return {"message": "Hello from FastAPI on Cloudflare Workers!"}
10
+
11
+
12
+ class Default(WorkerEntrypoint):
13
+ async def fetch(self, request):
14
+ return await asgi.fetch(app, request, self.env)
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "<WORKER_NAME>",
3
+ "main": "src/entry.py",
4
+ "compatibility_date": "<COMPATIBILITY_DATE>",
5
+ "compatibility_flags": ["python_workers"],
6
+ "observability": {
7
+ "enabled": true,
8
+ },
9
+ }
@@ -0,0 +1,19 @@
1
+ import type { TemplateConfig } from "../../src/templates";
2
+
3
+ export default {
4
+ configVersion: 1,
5
+ id: "flask",
6
+ displayName: "Flask",
7
+ description: "A Flask application running on Cloudflare Workers",
8
+ platform: "workers",
9
+ copyFiles: {
10
+ variants: {
11
+ python: {
12
+ path: "./py",
13
+ },
14
+ },
15
+ },
16
+ workersTypes: "none",
17
+ devScript: "dev",
18
+ deployScript: "deploy",
19
+ } satisfies TemplateConfig;
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,14 @@
1
+ # Flask on Cloudflare Workers
2
+
3
+ Install dependencies and start local development with uv:
4
+
5
+ ```sh
6
+ uv sync
7
+ uv run pywrangler dev
8
+ ```
9
+
10
+ Deploy the Worker with:
11
+
12
+ ```sh
13
+ uv run pywrangler deploy
14
+ ```
@@ -0,0 +1,7 @@
1
+ node_modules/
2
+ .wrangler/
3
+ .venv/
4
+ .venv-workers/
5
+ python_modules/
6
+ __pycache__/
7
+ *.py[cod]
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "<PACKAGE_NAME>",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "deploy": "uv run pywrangler deploy",
7
+ "dev": "uv run pywrangler dev",
8
+ "start": "uv run pywrangler dev"
9
+ },
10
+ "devDependencies": {
11
+ "wrangler": "^4.131.1"
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ [project]
2
+ name = "<PROJECT_NAME>"
3
+ version = "0.1.0"
4
+ description = "A Flask application running on Cloudflare Workers"
5
+ readme = "README.md"
6
+ requires-python = ">=3.13"
7
+ dependencies = ["flask"]
8
+
9
+ [dependency-groups]
10
+ dev = ["workers-py", "workers-runtime-sdk"]
@@ -0,0 +1,14 @@
1
+ from flask import Flask
2
+ from workers import WorkerEntrypoint, wsgi
3
+
4
+ app = Flask(__name__)
5
+
6
+
7
+ @app.get("/")
8
+ def root():
9
+ return "Hello from Flask on Cloudflare Workers!"
10
+
11
+
12
+ class Default(WorkerEntrypoint):
13
+ async def fetch(self, request):
14
+ return await wsgi.fetch(app, request, self.env)
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "<WORKER_NAME>",
3
+ "main": "src/entry.py",
4
+ "compatibility_date": "<COMPATIBILITY_DATE>",
5
+ "compatibility_flags": ["python_workers"],
6
+ "observability": {
7
+ "enabled": true,
8
+ },
9
+ }
@@ -34,6 +34,7 @@ const config: TemplateConfig = {
34
34
  id: "gatsby",
35
35
  frameworkCli: "gatsby",
36
36
  platform: "pages",
37
+ languages: ["js", "ts"],
37
38
  hidden: true,
38
39
  displayName: "Gatsby",
39
40
  path: "templates/gatsby/pages",
@@ -34,6 +34,7 @@ const config: TemplateConfig = {
34
34
  id: "gatsby",
35
35
  frameworkCli: "gatsby",
36
36
  platform: "workers",
37
+ languages: ["js", "ts"],
37
38
  displayName: "Gatsby",
38
39
  copyFiles: {
39
40
  path: "./templates",
@@ -8,6 +8,7 @@ const config: TemplateConfig = {
8
8
  description:
9
9
  "For static sites or when using your own backend. Uses Workers Static Assets.",
10
10
  platform: "workers",
11
+ languages: ["js", "ts"],
11
12
  copyFiles: {
12
13
  path: "./templates",
13
14
  },
@@ -31,6 +31,7 @@ const config: TemplateConfig = {
31
31
  },
32
32
  path: "templates/hono/pages",
33
33
  platform: "pages",
34
+ languages: ["ts"],
34
35
  hidden: true,
35
36
  generate,
36
37
  transformPackageJson: async () => ({
@@ -29,6 +29,7 @@ const config: TemplateConfig = {
29
29
  path: "./templates",
30
30
  },
31
31
  platform: "workers",
32
+ languages: ["ts"],
32
33
  path: "templates/hono/workers",
33
34
  generate,
34
35
  transformPackageJson: async () => ({
@@ -128,6 +128,7 @@ export default {
128
128
  // remote template and does not invoke this CLI.
129
129
  frameworkCli: "create-vinext-app",
130
130
  platform: "workers",
131
+ languages: ["ts"],
131
132
  displayName: "Next.js",
132
133
  generate,
133
134
  transformPackageJson: async (_pkgJson, ctx) => {
@@ -20,6 +20,7 @@ export default {
20
20
  id: "next",
21
21
  frameworkCli: "create-next-app",
22
22
  platform: "workers",
23
+ languages: ["js", "ts"],
23
24
  displayName: "Next.js",
24
25
  generate,
25
26
  devScript: "dev",
@@ -107,6 +107,7 @@ const config: TemplateConfig = {
107
107
  id: "nuxt",
108
108
  frameworkCli: "nuxi",
109
109
  platform: "pages",
110
+ languages: ["ts"],
110
111
  hidden: true,
111
112
  displayName: "Nuxt",
112
113
  copyFiles: {
@@ -107,6 +107,7 @@ const config: TemplateConfig = {
107
107
  id: "nuxt",
108
108
  frameworkCli: "nuxi",
109
109
  platform: "workers",
110
+ languages: ["ts"],
110
111
  displayName: "Nuxt",
111
112
  copyFiles: {
112
113
  path: "./templates",
@@ -9,6 +9,7 @@ const config: TemplateConfig = {
9
9
  copyFiles: {
10
10
  path: "./ts",
11
11
  },
12
+ languages: ["ts"],
12
13
  };
13
14
 
14
15
  export default config;
@@ -88,6 +88,7 @@ const config: TemplateConfig = {
88
88
  copyFiles: {
89
89
  path: "./js",
90
90
  },
91
+ languages: ["js"],
91
92
  configure: buildConfigure({
92
93
  login: wranglerLogin,
93
94
  chooseAccount,
@@ -104,6 +104,7 @@ const config: TemplateConfig = {
104
104
  frameworkCli: "create-qwik",
105
105
  displayName: "Qwik",
106
106
  platform: "pages",
107
+ languages: ["ts"],
107
108
  hidden: true,
108
109
  copyFiles: {
109
110
  path: "./templates",
@@ -104,6 +104,7 @@ const config: TemplateConfig = {
104
104
  frameworkCli: "create-qwik",
105
105
  displayName: "Qwik",
106
106
  platform: "workers",
107
+ languages: ["ts"],
107
108
  copyFiles: {
108
109
  path: "./templates",
109
110
  },
@@ -66,6 +66,7 @@ const config: TemplateConfig = {
66
66
  frameworkCli: "create-vite",
67
67
  displayName: "React",
68
68
  platform: "pages",
69
+ languages: ["js", "ts"],
69
70
  hidden: true,
70
71
  path: "templates/react/pages",
71
72
  copyFiles: { path: "./templates" },
@@ -64,6 +64,7 @@ const config: TemplateConfig = {
64
64
  copyFiles: {
65
65
  path: "./ts",
66
66
  },
67
+ languages: ["ts"],
67
68
  generate,
68
69
  configure,
69
70
  transformPackageJson: async () => ({
@@ -16,6 +16,7 @@ const config: TemplateConfig = {
16
16
  configVersion: 1,
17
17
  id: "redwood",
18
18
  platform: "workers",
19
+ languages: ["ts"],
19
20
  frameworkCli: "create-rwsdk",
20
21
  displayName: "RedwoodSDK",
21
22
  generate,
@@ -60,6 +60,7 @@ const config: TemplateConfig = {
60
60
  frameworkCli: "create-solid",
61
61
  displayName: "SolidStart",
62
62
  platform: "workers",
63
+ languages: ["js", "ts"],
63
64
  copyFiles: {
64
65
  path: "./templates",
65
66
  },
@@ -133,6 +133,7 @@ const config: TemplateConfig = {
133
133
  frameworkCli: "sv",
134
134
  displayName: "SvelteKit",
135
135
  platform: "pages",
136
+ languages: ["js", "ts"],
136
137
  hidden: true,
137
138
  copyFiles: {
138
139
  path: "./templates",
@@ -103,6 +103,7 @@ const config: TemplateConfig = {
103
103
  frameworkCli: "sv",
104
104
  displayName: "SvelteKit",
105
105
  platform: "workers",
106
+ languages: ["js", "ts"],
106
107
  copyFiles: {
107
108
  path: "./templates",
108
109
  },
@@ -28,6 +28,7 @@ const config: TemplateConfig = {
28
28
  configVersion: 1,
29
29
  id: "tanstack-start",
30
30
  platform: "workers",
31
+ languages: ["ts"],
31
32
  frameworkCli: "@tanstack/cli",
32
33
  displayName: "TanStack Start",
33
34
  generate,
@@ -18,6 +18,7 @@ const config: TemplateConfig = {
18
18
  configVersion: 1,
19
19
  id: "vike",
20
20
  platform: "workers",
21
+ languages: ["ts"],
21
22
  frameworkCli: "create-vike",
22
23
  displayName: "Vike",
23
24
  generate,
@@ -20,6 +20,7 @@ const config: TemplateConfig = {
20
20
  configVersion: 1,
21
21
  id: "vike",
22
22
  platform: "workers",
23
+ languages: ["ts"],
23
24
  frameworkCli: "create-vike",
24
25
  displayName: "Vike",
25
26
  generate,
@@ -15,6 +15,7 @@ const config: TemplateConfig = {
15
15
  frameworkCli: "create-vue",
16
16
  displayName: "Vue",
17
17
  platform: "pages",
18
+ languages: ["js", "ts"],
18
19
  hidden: true,
19
20
  path: "templates/vue/pages",
20
21
  copyFiles: { path: "./templates" },
@@ -56,6 +56,7 @@ const config: TemplateConfig = {
56
56
  id: "waku",
57
57
  frameworkCli: "create-waku",
58
58
  platform: "workers",
59
+ languages: ["ts"],
59
60
  displayName: "Waku",
60
61
  copyFiles: {
61
62
  path: "./templates",
@@ -21,6 +21,7 @@ const config: TemplateConfig = {
21
21
  id: "waku",
22
22
  frameworkCli: "create-waku",
23
23
  platform: "workers",
24
+ languages: ["ts"],
24
25
  displayName: "Waku",
25
26
  generate,
26
27
  devScript: "dev",