create-cloudflare 0.0.0-e2a6fa40 → 0.0.0-e2e6912bc
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/README.md +2 -53
- package/dist/cli.js +74123 -54577
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +43 -27
- package/templates/analog/c3.ts +135 -0
- package/templates/analog/snippets/devBindingsModule.ts +7 -0
- package/templates/analog/templates/env.d.ts +13 -0
- package/templates/analog/templates/src/dev-bindings.ts +18 -0
- package/templates/analog/templates/worker-configuration.d.ts +4 -0
- package/templates/analog/templates/wrangler.toml +85 -0
- package/templates/angular/c3.ts +102 -0
- package/{dist/angular/templates/src/main.server.ts → templates/angular/templates/server.ts} +14 -15
- package/templates/angular/templates/tools/alter-polyfills.mjs +27 -0
- package/templates/angular/templates/tools/copy-files.mjs +9 -0
- package/templates/astro/c3.ts +113 -0
- package/templates/astro/snippets/runtimeDeclaration.ts +5 -0
- package/templates/astro/templates/wrangler.toml +86 -0
- package/templates/common/c3.ts +19 -0
- package/templates/common/js/.editorconfig +0 -1
- package/templates/common/js/__dot__gitignore +172 -0
- package/templates/common/js/package.json +2 -1
- package/templates/common/js/wrangler.toml +85 -23
- package/templates/common/ts/.editorconfig +0 -1
- package/templates/common/ts/__dot__gitignore +172 -0
- package/templates/common/ts/package.json +5 -4
- package/templates/common/ts/src/ab-test.ts +2 -2
- package/templates/common/ts/src/index.ts +5 -2
- package/templates/common/ts/src/proxy.ts +2 -2
- package/templates/common/ts/src/redirect.ts +2 -2
- package/templates/common/ts/tsconfig.json +37 -95
- package/templates/common/ts/worker-configuration.d.ts +2 -14
- package/templates/common/ts/wrangler.toml +85 -23
- package/templates/docusaurus/c3.ts +28 -0
- package/templates/gatsby/c3.ts +49 -0
- package/templates/hello-world/c3.ts +20 -0
- package/templates/hello-world/js/.editorconfig +0 -1
- package/templates/hello-world/js/__dot__gitignore +172 -0
- package/templates/hello-world/js/package.json +6 -2
- package/templates/hello-world/js/test/index.spec.js +20 -0
- package/templates/hello-world/js/vitest.config.js +11 -0
- package/templates/hello-world/js/wrangler.toml +86 -23
- package/templates/hello-world/py/__dot__gitignore +68 -0
- package/templates/hello-world/py/package.json +13 -0
- package/templates/hello-world/py/src/entry.py +4 -0
- package/templates/hello-world/py/wrangler.toml +114 -0
- package/templates/hello-world/ts/.editorconfig +0 -1
- package/templates/hello-world/ts/__dot__gitignore +172 -0
- package/templates/hello-world/ts/package.json +8 -4
- package/templates/hello-world/ts/src/index.ts +5 -19
- package/templates/hello-world/ts/test/index.spec.ts +25 -0
- package/templates/hello-world/ts/test/tsconfig.json +8 -0
- package/templates/hello-world/ts/tsconfig.json +39 -96
- package/templates/hello-world/ts/vitest.config.mts +11 -0
- package/templates/hello-world/ts/worker-configuration.d.ts +4 -0
- package/templates/hello-world/ts/wrangler.toml +86 -23
- package/templates/hello-world-durable-object/c3.ts +18 -0
- package/templates/hello-world-durable-object/js/.editorconfig +12 -0
- package/templates/hello-world-durable-object/js/.prettierrc +6 -0
- package/templates/hello-world-durable-object/js/__dot__gitignore +172 -0
- package/templates/hello-world-durable-object/js/package.json +13 -0
- package/templates/hello-world-durable-object/js/src/index.js +69 -0
- package/templates/hello-world-durable-object/js/wrangler.toml +113 -0
- package/templates/hello-world-durable-object/ts/.editorconfig +12 -0
- package/templates/hello-world-durable-object/ts/.prettierrc +6 -0
- package/templates/hello-world-durable-object/ts/__dot__gitignore +172 -0
- package/templates/hello-world-durable-object/ts/package.json +15 -0
- package/templates/hello-world-durable-object/ts/src/index.ts +65 -0
- package/templates/hello-world-durable-object/ts/tsconfig.json +42 -0
- package/templates/hello-world-durable-object/ts/worker-configuration.d.ts +5 -0
- package/templates/hello-world-durable-object/ts/wrangler.toml +113 -0
- package/templates/hono/c3.ts +69 -0
- package/templates/hono/snippets/appDeclaration.ts +1 -0
- package/templates/hono/templates/worker-configuration.d.ts +4 -0
- package/templates/hono/templates/wrangler.toml +113 -0
- package/templates/next/README.md +68 -0
- package/templates/next/app/js/app/api/hello/route.js +21 -0
- package/templates/next/app/js/app/not-found.js +58 -0
- package/templates/next/app/ts/app/api/hello/route.ts +22 -0
- package/templates/next/app/ts/app/not-found.tsx +58 -0
- package/templates/next/c3.ts +238 -0
- package/templates/next/env.d.ts +5 -0
- package/templates/next/pages/js/pages/api/hello.js +23 -0
- package/templates/next/pages/ts/pages/api/hello.ts +24 -0
- package/templates/next/wrangler.toml +86 -0
- package/templates/nuxt/c3.ts +134 -0
- package/templates/nuxt/templates/env.d.ts +14 -0
- package/templates/nuxt/templates/worker-configuration.d.ts +4 -0
- package/templates/nuxt/templates/wrangler.toml +86 -0
- package/templates/openapi/c3.ts +10 -0
- package/templates/openapi/ts/README.md +25 -0
- package/templates/openapi/ts/__dot__gitignore +171 -0
- package/templates/openapi/ts/package.json +21 -0
- package/templates/openapi/ts/src/endpoints/taskCreate.ts +58 -0
- package/templates/openapi/ts/src/endpoints/taskDelete.ts +56 -0
- package/templates/openapi/ts/src/endpoints/taskFetch.ts +81 -0
- package/templates/openapi/ts/src/endpoints/taskList.ts +69 -0
- package/templates/openapi/ts/src/index.ts +23 -0
- package/templates/openapi/ts/src/types.ts +10 -0
- package/templates/openapi/ts/tsconfig.json +32 -0
- package/templates/openapi/ts/worker-configuration.d.ts +4 -0
- package/templates/openapi/ts/wrangler.toml +113 -0
- package/templates/pre-existing/c3.ts +102 -0
- package/templates/pre-existing/js/.editorconfig +12 -0
- package/templates/pre-existing/js/.prettierrc +6 -0
- package/templates/pre-existing/js/__dot__gitignore +172 -0
- package/templates/pre-existing/js/package.json +13 -0
- package/templates/pre-existing/js/wrangler.toml +4 -0
- package/templates/queues/c3.ts +28 -0
- package/templates/queues/js/.editorconfig +0 -1
- package/templates/queues/js/__dot__gitignore +172 -0
- package/templates/queues/js/package.json +2 -1
- package/templates/queues/js/wrangler.toml +101 -2
- package/templates/queues/ts/.editorconfig +0 -1
- package/templates/queues/ts/__dot__gitignore +172 -0
- package/templates/queues/ts/package.json +5 -4
- package/templates/queues/ts/src/index.ts +6 -8
- package/templates/queues/ts/tsconfig.json +36 -95
- package/templates/queues/ts/worker-configuration.d.ts +5 -0
- package/templates/queues/ts/wrangler.toml +101 -2
- package/templates/qwik/c3.ts +147 -0
- package/templates/qwik/snippets/getPlatformProxy.ts +6 -0
- package/templates/qwik/templates/worker-configuration.d.ts +4 -0
- package/templates/qwik/templates/wrangler.toml +86 -0
- package/templates/react/c3.ts +61 -0
- package/templates/remix/c3.ts +67 -0
- package/templates/remix/templates/worker-configuration.d.ts +4 -0
- package/templates/remix/templates/wrangler.toml +85 -0
- package/templates/scheduled/c3.ts +18 -0
- package/templates/scheduled/js/.editorconfig +0 -1
- package/templates/scheduled/js/__dot__gitignore +172 -0
- package/templates/scheduled/js/package.json +3 -2
- package/templates/scheduled/js/src/index.js +8 -1
- package/templates/scheduled/js/wrangler.toml +111 -1
- package/templates/scheduled/ts/.editorconfig +0 -1
- package/templates/scheduled/ts/__dot__gitignore +172 -0
- package/templates/scheduled/ts/package.json +5 -4
- package/templates/scheduled/ts/src/index.ts +6 -23
- package/templates/scheduled/ts/tsconfig.json +36 -95
- package/templates/scheduled/ts/worker-configuration.d.ts +4 -0
- package/templates/scheduled/ts/wrangler.toml +111 -1
- package/templates/solid/c3.ts +87 -0
- package/templates/solid/templates/wrangler.toml +84 -0
- package/templates/svelte/c3.ts +131 -0
- package/templates/svelte/js/wrangler.toml +85 -0
- package/templates/svelte/ts/wrangler.toml +85 -0
- package/templates/vue/c3.ts +29 -0
- package/templates-experimental/angular/c3.ts +98 -0
- package/templates-experimental/angular/templates/server.ts +34 -0
- package/templates-experimental/angular/templates/tools/alter-polyfills.mjs +32 -0
- package/templates-experimental/angular/templates/wrangler.toml +11 -0
- package/templates-experimental/astro/c3.ts +114 -0
- package/templates-experimental/astro/snippets/runtimeDeclaration.ts +5 -0
- package/templates-experimental/astro/templates/public/.assetsignore +4 -0
- package/templates-experimental/astro/templates/wrangler.toml +12 -0
- package/templates-experimental/docusaurus/c3.ts +32 -0
- package/templates-experimental/docusaurus/templates/wrangler.toml +10 -0
- package/templates-experimental/gatsby/c3.ts +53 -0
- package/templates-experimental/gatsby/templates/wrangler.toml +10 -0
- package/templates-experimental/hello-world-assets-only/c3.ts +15 -0
- package/templates-experimental/hello-world-assets-only/templates/package.json +13 -0
- package/templates-experimental/hello-world-assets-only/templates/public/index.html +11 -0
- package/templates-experimental/hello-world-assets-only/templates/wrangler.toml +10 -0
- package/templates-experimental/hello-world-durable-object-with-assets/c3.ts +23 -0
- package/templates-experimental/hello-world-durable-object-with-assets/js/.editorconfig +12 -0
- package/templates-experimental/hello-world-durable-object-with-assets/js/.prettierrc +6 -0
- package/templates-experimental/hello-world-durable-object-with-assets/js/__dot__gitignore +172 -0
- package/templates-experimental/hello-world-durable-object-with-assets/js/package.json +13 -0
- package/templates-experimental/hello-world-durable-object-with-assets/js/public/index.html +19 -0
- package/templates-experimental/hello-world-durable-object-with-assets/js/src/index.js +69 -0
- package/templates-experimental/hello-world-durable-object-with-assets/js/wrangler.toml +24 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/.editorconfig +12 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/.prettierrc +6 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/__dot__gitignore +172 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/package.json +15 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/public/index.html +19 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/src/index.ts +66 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/tsconfig.json +42 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/worker-configuration.d.ts +5 -0
- package/templates-experimental/hello-world-durable-object-with-assets/ts/wrangler.toml +24 -0
- package/templates-experimental/hello-world-with-assets/c3.ts +22 -0
- package/templates-experimental/hello-world-with-assets/js/.editorconfig +12 -0
- package/templates-experimental/hello-world-with-assets/js/.prettierrc +6 -0
- package/templates-experimental/hello-world-with-assets/js/__dot__gitignore +172 -0
- package/templates-experimental/hello-world-with-assets/js/package.json +16 -0
- package/templates-experimental/hello-world-with-assets/js/public/index.html +31 -0
- package/templates-experimental/hello-world-with-assets/js/src/index.js +23 -0
- package/templates-experimental/hello-world-with-assets/js/test/index.spec.js +41 -0
- package/templates-experimental/hello-world-with-assets/js/vitest.config.js +11 -0
- package/templates-experimental/hello-world-with-assets/js/wrangler.toml +12 -0
- package/templates-experimental/hello-world-with-assets/py/__dot__gitignore +68 -0
- package/templates-experimental/hello-world-with-assets/py/package.json +13 -0
- package/templates-experimental/hello-world-with-assets/py/public/index.html +31 -0
- package/templates-experimental/hello-world-with-assets/py/src/entry.py +9 -0
- package/templates-experimental/hello-world-with-assets/py/wrangler.toml +12 -0
- package/templates-experimental/hello-world-with-assets/ts/.editorconfig +12 -0
- package/templates-experimental/hello-world-with-assets/ts/.prettierrc +6 -0
- package/templates-experimental/hello-world-with-assets/ts/__dot__gitignore +172 -0
- package/templates-experimental/hello-world-with-assets/ts/package.json +18 -0
- package/templates-experimental/hello-world-with-assets/ts/public/index.html +31 -0
- package/templates-experimental/hello-world-with-assets/ts/src/index.ts +26 -0
- package/templates-experimental/hello-world-with-assets/ts/test/index.spec.ts +41 -0
- package/templates-experimental/hello-world-with-assets/ts/test/tsconfig.json +8 -0
- package/templates-experimental/hello-world-with-assets/ts/tsconfig.json +44 -0
- package/templates-experimental/hello-world-with-assets/ts/vitest.config.mts +11 -0
- package/templates-experimental/hello-world-with-assets/ts/worker-configuration.d.ts +4 -0
- package/templates-experimental/hello-world-with-assets/ts/wrangler.toml +12 -0
- package/templates-experimental/hono/c3.ts +43 -0
- package/templates-experimental/hono/templates/public/index.html +19 -0
- package/templates-experimental/hono/templates/src/index.ts +9 -0
- package/templates-experimental/hono/templates/worker-configuration.d.ts +4 -0
- package/templates-experimental/hono/templates/wrangler.toml +5 -0
- package/templates-experimental/next/c3.ts +52 -0
- package/templates-experimental/next/templates/__dot__gitignore +42 -0
- package/templates-experimental/next/templates/env.d.ts +5 -0
- package/templates-experimental/next/templates/wrangler.toml +12 -0
- package/templates-experimental/nuxt/c3.ts +135 -0
- package/templates-experimental/nuxt/templates/cloudflare-preset/nitro.config.ts +27 -0
- package/templates-experimental/nuxt/templates/env.d.ts +14 -0
- package/templates-experimental/nuxt/templates/worker-configuration.d.ts +4 -0
- package/templates-experimental/nuxt/templates/wrangler.toml +11 -0
- package/templates-experimental/qwik/c3.ts +153 -0
- package/templates-experimental/qwik/snippets/getPlatformProxy.ts +6 -0
- package/templates-experimental/qwik/templates/public/.assetsignore +4 -0
- package/templates-experimental/qwik/templates/worker-configuration.d.ts +4 -0
- package/templates-experimental/qwik/templates/wrangler.toml +12 -0
- package/templates-experimental/remix/c3.ts +52 -0
- package/templates-experimental/remix/templates/public/.assetsignore +0 -0
- package/templates-experimental/remix/templates/worker-configuration.d.ts +4 -0
- package/templates-experimental/remix/templates/wrangler.toml +11 -0
- package/templates-experimental/solid/c3.ts +137 -0
- package/templates-experimental/solid/templates/wrangler.toml +12 -0
- package/templates-experimental/svelte/c3.ts +132 -0
- package/templates-experimental/svelte/js/static/.assetsignore +4 -0
- package/templates-experimental/svelte/js/wrangler.toml +11 -0
- package/templates-experimental/svelte/ts/static/.assetsignore +4 -0
- package/templates-experimental/svelte/ts/wrangler.toml +11 -0
- package/dist/angular/templates/tools/bundle.mjs +0 -77
- package/dist/angular/templates/tools/copy-client-files.mjs +0 -4
- package/dist/angular/templates/tools/copy-worker-files.mjs +0 -10
- package/dist/angular/templates/tsconfig.server.json +0 -5
- package/templates/chatgptPlugin/ts/.assets/example.png +0 -0
- package/templates/chatgptPlugin/ts/README.md +0 -25
- package/templates/chatgptPlugin/ts/package.json +0 -16
- package/templates/chatgptPlugin/ts/src/index.ts +0 -33
- package/templates/chatgptPlugin/ts/src/search.ts +0 -63
- package/templates/chatgptPlugin/ts/wrangler.toml +0 -3
- /package/{dist → templates}/angular/templates/src/_routes.json +0 -0
- /package/{dist → templates}/angular/templates/tools/paths.mjs +0 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Logs
|
|
2
|
+
|
|
3
|
+
logs
|
|
4
|
+
_.log
|
|
5
|
+
npm-debug.log_
|
|
6
|
+
yarn-debug.log*
|
|
7
|
+
yarn-error.log*
|
|
8
|
+
lerna-debug.log*
|
|
9
|
+
.pnpm-debug.log*
|
|
10
|
+
|
|
11
|
+
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
12
|
+
|
|
13
|
+
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
|
14
|
+
|
|
15
|
+
# Runtime data
|
|
16
|
+
|
|
17
|
+
pids
|
|
18
|
+
_.pid
|
|
19
|
+
_.seed
|
|
20
|
+
\*.pid.lock
|
|
21
|
+
|
|
22
|
+
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
23
|
+
|
|
24
|
+
lib-cov
|
|
25
|
+
|
|
26
|
+
# Coverage directory used by tools like istanbul
|
|
27
|
+
|
|
28
|
+
coverage
|
|
29
|
+
\*.lcov
|
|
30
|
+
|
|
31
|
+
# nyc test coverage
|
|
32
|
+
|
|
33
|
+
.nyc_output
|
|
34
|
+
|
|
35
|
+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
|
36
|
+
|
|
37
|
+
.grunt
|
|
38
|
+
|
|
39
|
+
# Bower dependency directory (https://bower.io/)
|
|
40
|
+
|
|
41
|
+
bower_components
|
|
42
|
+
|
|
43
|
+
# node-waf configuration
|
|
44
|
+
|
|
45
|
+
.lock-wscript
|
|
46
|
+
|
|
47
|
+
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
48
|
+
|
|
49
|
+
build/Release
|
|
50
|
+
|
|
51
|
+
# Dependency directories
|
|
52
|
+
|
|
53
|
+
node_modules/
|
|
54
|
+
jspm_packages/
|
|
55
|
+
|
|
56
|
+
# Snowpack dependency directory (https://snowpack.dev/)
|
|
57
|
+
|
|
58
|
+
web_modules/
|
|
59
|
+
|
|
60
|
+
# TypeScript cache
|
|
61
|
+
|
|
62
|
+
\*.tsbuildinfo
|
|
63
|
+
|
|
64
|
+
# Optional npm cache directory
|
|
65
|
+
|
|
66
|
+
.npm
|
|
67
|
+
|
|
68
|
+
# Optional eslint cache
|
|
69
|
+
|
|
70
|
+
.eslintcache
|
|
71
|
+
|
|
72
|
+
# Optional stylelint cache
|
|
73
|
+
|
|
74
|
+
.stylelintcache
|
|
75
|
+
|
|
76
|
+
# Microbundle cache
|
|
77
|
+
|
|
78
|
+
.rpt2_cache/
|
|
79
|
+
.rts2_cache_cjs/
|
|
80
|
+
.rts2_cache_es/
|
|
81
|
+
.rts2_cache_umd/
|
|
82
|
+
|
|
83
|
+
# Optional REPL history
|
|
84
|
+
|
|
85
|
+
.node_repl_history
|
|
86
|
+
|
|
87
|
+
# Output of 'npm pack'
|
|
88
|
+
|
|
89
|
+
\*.tgz
|
|
90
|
+
|
|
91
|
+
# Yarn Integrity file
|
|
92
|
+
|
|
93
|
+
.yarn-integrity
|
|
94
|
+
|
|
95
|
+
# dotenv environment variable files
|
|
96
|
+
|
|
97
|
+
.env
|
|
98
|
+
.env.development.local
|
|
99
|
+
.env.test.local
|
|
100
|
+
.env.production.local
|
|
101
|
+
.env.local
|
|
102
|
+
|
|
103
|
+
# parcel-bundler cache (https://parceljs.org/)
|
|
104
|
+
|
|
105
|
+
.cache
|
|
106
|
+
.parcel-cache
|
|
107
|
+
|
|
108
|
+
# Next.js build output
|
|
109
|
+
|
|
110
|
+
.next
|
|
111
|
+
out
|
|
112
|
+
|
|
113
|
+
# Nuxt.js build / generate output
|
|
114
|
+
|
|
115
|
+
.nuxt
|
|
116
|
+
dist
|
|
117
|
+
|
|
118
|
+
# Gatsby files
|
|
119
|
+
|
|
120
|
+
.cache/
|
|
121
|
+
|
|
122
|
+
# Comment in the public line in if your project uses Gatsby and not Next.js
|
|
123
|
+
|
|
124
|
+
# https://nextjs.org/blog/next-9-1#public-directory-support
|
|
125
|
+
|
|
126
|
+
# public
|
|
127
|
+
|
|
128
|
+
# vuepress build output
|
|
129
|
+
|
|
130
|
+
.vuepress/dist
|
|
131
|
+
|
|
132
|
+
# vuepress v2.x temp and cache directory
|
|
133
|
+
|
|
134
|
+
.temp
|
|
135
|
+
.cache
|
|
136
|
+
|
|
137
|
+
# Docusaurus cache and generated files
|
|
138
|
+
|
|
139
|
+
.docusaurus
|
|
140
|
+
|
|
141
|
+
# Serverless directories
|
|
142
|
+
|
|
143
|
+
.serverless/
|
|
144
|
+
|
|
145
|
+
# FuseBox cache
|
|
146
|
+
|
|
147
|
+
.fusebox/
|
|
148
|
+
|
|
149
|
+
# DynamoDB Local files
|
|
150
|
+
|
|
151
|
+
.dynamodb/
|
|
152
|
+
|
|
153
|
+
# TernJS port file
|
|
154
|
+
|
|
155
|
+
.tern-port
|
|
156
|
+
|
|
157
|
+
# Stores VSCode versions used for testing VSCode extensions
|
|
158
|
+
|
|
159
|
+
.vscode-test
|
|
160
|
+
|
|
161
|
+
# yarn v2
|
|
162
|
+
|
|
163
|
+
.yarn/cache
|
|
164
|
+
.yarn/unplugged
|
|
165
|
+
.yarn/build-state.yml
|
|
166
|
+
.yarn/install-state.gz
|
|
167
|
+
.pnp.\*
|
|
168
|
+
|
|
169
|
+
# wrangler project
|
|
170
|
+
|
|
171
|
+
.dev.vars
|
|
172
|
+
.wrangler/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<TBD>",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"deploy": "wrangler deploy",
|
|
7
|
+
"dev": "wrangler dev",
|
|
8
|
+
"start": "wrangler dev",
|
|
9
|
+
"cf-typegen": "wrangler types"
|
|
10
|
+
},
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"typescript": "^5.5.2",
|
|
13
|
+
"wrangler": "^3.60.3"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Hello, World!</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<h1 id="heading"></h1>
|
|
10
|
+
<script>
|
|
11
|
+
fetch('/message')
|
|
12
|
+
.then((resp) => resp.text())
|
|
13
|
+
.then((text) => {
|
|
14
|
+
const h1 = document.getElementById('heading');
|
|
15
|
+
h1.textContent = text;
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { DurableObject } from "cloudflare:workers";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Welcome to Cloudflare Workers! This is your first Durable Objects application.
|
|
5
|
+
*
|
|
6
|
+
* - Run `npm run dev` in your terminal to start a development server
|
|
7
|
+
* - Open a browser tab at http://localhost:8787/ to see your Durable Object in action
|
|
8
|
+
* - Run `npm run deploy` to publish your application
|
|
9
|
+
*
|
|
10
|
+
* Bind resources to your worker in `wrangler.toml`. After adding bindings, a type definition for the
|
|
11
|
+
* `Env` object can be regenerated with `npm run cf-typegen`.
|
|
12
|
+
*
|
|
13
|
+
* Learn more at https://developers.cloudflare.com/durable-objects
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/** A Durable Object's behavior is defined in an exported Javascript class */
|
|
18
|
+
export class MyDurableObject extends DurableObject {
|
|
19
|
+
/**
|
|
20
|
+
* The constructor is invoked once upon creation of the Durable Object, i.e. the first call to
|
|
21
|
+
* `DurableObjectStub::get` for a given identifier (no-op constructors can be omitted)
|
|
22
|
+
*
|
|
23
|
+
* @param ctx - The interface for interacting with Durable Object state
|
|
24
|
+
* @param env - The interface to reference bindings declared in wrangler.toml
|
|
25
|
+
*/
|
|
26
|
+
constructor(ctx: DurableObjectState, env: Env) {
|
|
27
|
+
super(ctx, env);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The Durable Object exposes an RPC method sayHello which will be invoked when when a Durable
|
|
32
|
+
* Object instance receives a request from a Worker via the same method invocation on the stub
|
|
33
|
+
*
|
|
34
|
+
* @param name - The name provided to a Durable Object instance from a Worker
|
|
35
|
+
* @returns The greeting to be sent back to the Worker
|
|
36
|
+
*/
|
|
37
|
+
async sayHello(name: string): Promise<string> {
|
|
38
|
+
return `Hello, ${name}!`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export default {
|
|
43
|
+
/**
|
|
44
|
+
* This is the standard fetch handler for a Cloudflare Worker
|
|
45
|
+
*
|
|
46
|
+
* @param request - The request submitted to the Worker from the client
|
|
47
|
+
* @param env - The interface to reference bindings declared in wrangler.toml
|
|
48
|
+
* @param ctx - The execution context of the Worker
|
|
49
|
+
* @returns The response to be sent back to the client
|
|
50
|
+
*/
|
|
51
|
+
async fetch(request, env, ctx): Promise<Response> {
|
|
52
|
+
// We will create a `DurableObjectId` using the pathname from the Worker request
|
|
53
|
+
// This id refers to a unique instance of our 'MyDurableObject' class above
|
|
54
|
+
let id: DurableObjectId = env.MY_DURABLE_OBJECT.idFromName(new URL(request.url).pathname);
|
|
55
|
+
|
|
56
|
+
// This stub creates a communication channel with the Durable Object instance
|
|
57
|
+
// The Durable Object constructor will be invoked upon the first call for a given id
|
|
58
|
+
let stub = env.MY_DURABLE_OBJECT.get(id);
|
|
59
|
+
|
|
60
|
+
// We call the `sayHello()` RPC method on the stub to invoke the method on the remote
|
|
61
|
+
// Durable Object instance
|
|
62
|
+
let greeting = await stub.sayHello("world");
|
|
63
|
+
|
|
64
|
+
return new Response(greeting);
|
|
65
|
+
},
|
|
66
|
+
} satisfies ExportedHandler<Env>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
/* Visit https://aka.ms/tsconfig.json to read more about this file */
|
|
4
|
+
|
|
5
|
+
/* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
|
6
|
+
"target": "es2021",
|
|
7
|
+
/* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
|
8
|
+
"lib": ["es2021"],
|
|
9
|
+
/* Specify what JSX code is generated. */
|
|
10
|
+
"jsx": "react-jsx",
|
|
11
|
+
|
|
12
|
+
/* Specify what module code is generated. */
|
|
13
|
+
"module": "es2022",
|
|
14
|
+
/* Specify how TypeScript looks up a file from a given module specifier. */
|
|
15
|
+
"moduleResolution": "node",
|
|
16
|
+
/* Specify type package names to be included without being referenced in a source file. */
|
|
17
|
+
"types": ["@cloudflare/workers-types"],
|
|
18
|
+
/* Enable importing .json files */
|
|
19
|
+
"resolveJsonModule": true,
|
|
20
|
+
|
|
21
|
+
/* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
|
|
22
|
+
"allowJs": true,
|
|
23
|
+
/* Enable error reporting in type-checked JavaScript files. */
|
|
24
|
+
"checkJs": false,
|
|
25
|
+
|
|
26
|
+
/* Disable emitting files from a compilation. */
|
|
27
|
+
"noEmit": true,
|
|
28
|
+
|
|
29
|
+
/* Ensure that each file can be safely transpiled without relying on other imports. */
|
|
30
|
+
"isolatedModules": true,
|
|
31
|
+
/* Allow 'import x from y' when a module doesn't have a default export. */
|
|
32
|
+
"allowSyntheticDefaultImports": true,
|
|
33
|
+
/* Ensure that casing is correct in imports. */
|
|
34
|
+
"forceConsistentCasingInFileNames": true,
|
|
35
|
+
|
|
36
|
+
/* Enable all strict type-checking options. */
|
|
37
|
+
"strict": true,
|
|
38
|
+
|
|
39
|
+
/* Skip type checking all .d.ts files. */
|
|
40
|
+
"skipLibCheck": true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#:schema node_modules/wrangler/config-schema.json
|
|
2
|
+
name = "<TBD>"
|
|
3
|
+
main = "src/index.ts"
|
|
4
|
+
compatibility_date = "<TBD>"
|
|
5
|
+
assets = { directory = "./public", binding = "ASSETS" }
|
|
6
|
+
|
|
7
|
+
# Bind a Durable Object. Durable objects are a scale-to-zero compute primitive based on the actor model.
|
|
8
|
+
# Durable Objects can live for as long as needed. Use these when you need a long-running "server", such as in realtime apps.
|
|
9
|
+
# Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects
|
|
10
|
+
[[durable_objects.bindings]]
|
|
11
|
+
name = "MY_DURABLE_OBJECT"
|
|
12
|
+
class_name = "MyDurableObject"
|
|
13
|
+
|
|
14
|
+
# Durable Object migrations.
|
|
15
|
+
# Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#migrations
|
|
16
|
+
[[migrations]]
|
|
17
|
+
tag = "v1"
|
|
18
|
+
new_classes = ["MyDurableObject"]
|
|
19
|
+
|
|
20
|
+
# Workers Logs
|
|
21
|
+
# Docs: https://developers.cloudflare.com/workers/observability/logs/workers-logs/
|
|
22
|
+
# Configuration: https://developers.cloudflare.com/workers/observability/logs/workers-logs/#enable-workers-logs
|
|
23
|
+
[observability]
|
|
24
|
+
enabled = true
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
configVersion: 1,
|
|
3
|
+
id: "hello-world-with-assets",
|
|
4
|
+
path: "templates-experimental/hello-world-with-assets",
|
|
5
|
+
displayName: "Hello World - Worker with Assets",
|
|
6
|
+
description:
|
|
7
|
+
"Get started with a basic Worker that also serves static assets, in the language of your choice",
|
|
8
|
+
platform: "workers",
|
|
9
|
+
copyFiles: {
|
|
10
|
+
variants: {
|
|
11
|
+
js: {
|
|
12
|
+
path: "./js",
|
|
13
|
+
},
|
|
14
|
+
ts: {
|
|
15
|
+
path: "./ts",
|
|
16
|
+
},
|
|
17
|
+
python: {
|
|
18
|
+
path: "./py",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
};
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Logs
|
|
2
|
+
|
|
3
|
+
logs
|
|
4
|
+
_.log
|
|
5
|
+
npm-debug.log_
|
|
6
|
+
yarn-debug.log*
|
|
7
|
+
yarn-error.log*
|
|
8
|
+
lerna-debug.log*
|
|
9
|
+
.pnpm-debug.log*
|
|
10
|
+
|
|
11
|
+
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
12
|
+
|
|
13
|
+
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
|
14
|
+
|
|
15
|
+
# Runtime data
|
|
16
|
+
|
|
17
|
+
pids
|
|
18
|
+
_.pid
|
|
19
|
+
_.seed
|
|
20
|
+
\*.pid.lock
|
|
21
|
+
|
|
22
|
+
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
23
|
+
|
|
24
|
+
lib-cov
|
|
25
|
+
|
|
26
|
+
# Coverage directory used by tools like istanbul
|
|
27
|
+
|
|
28
|
+
coverage
|
|
29
|
+
\*.lcov
|
|
30
|
+
|
|
31
|
+
# nyc test coverage
|
|
32
|
+
|
|
33
|
+
.nyc_output
|
|
34
|
+
|
|
35
|
+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
|
36
|
+
|
|
37
|
+
.grunt
|
|
38
|
+
|
|
39
|
+
# Bower dependency directory (https://bower.io/)
|
|
40
|
+
|
|
41
|
+
bower_components
|
|
42
|
+
|
|
43
|
+
# node-waf configuration
|
|
44
|
+
|
|
45
|
+
.lock-wscript
|
|
46
|
+
|
|
47
|
+
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
48
|
+
|
|
49
|
+
build/Release
|
|
50
|
+
|
|
51
|
+
# Dependency directories
|
|
52
|
+
|
|
53
|
+
node_modules/
|
|
54
|
+
jspm_packages/
|
|
55
|
+
|
|
56
|
+
# Snowpack dependency directory (https://snowpack.dev/)
|
|
57
|
+
|
|
58
|
+
web_modules/
|
|
59
|
+
|
|
60
|
+
# TypeScript cache
|
|
61
|
+
|
|
62
|
+
\*.tsbuildinfo
|
|
63
|
+
|
|
64
|
+
# Optional npm cache directory
|
|
65
|
+
|
|
66
|
+
.npm
|
|
67
|
+
|
|
68
|
+
# Optional eslint cache
|
|
69
|
+
|
|
70
|
+
.eslintcache
|
|
71
|
+
|
|
72
|
+
# Optional stylelint cache
|
|
73
|
+
|
|
74
|
+
.stylelintcache
|
|
75
|
+
|
|
76
|
+
# Microbundle cache
|
|
77
|
+
|
|
78
|
+
.rpt2_cache/
|
|
79
|
+
.rts2_cache_cjs/
|
|
80
|
+
.rts2_cache_es/
|
|
81
|
+
.rts2_cache_umd/
|
|
82
|
+
|
|
83
|
+
# Optional REPL history
|
|
84
|
+
|
|
85
|
+
.node_repl_history
|
|
86
|
+
|
|
87
|
+
# Output of 'npm pack'
|
|
88
|
+
|
|
89
|
+
\*.tgz
|
|
90
|
+
|
|
91
|
+
# Yarn Integrity file
|
|
92
|
+
|
|
93
|
+
.yarn-integrity
|
|
94
|
+
|
|
95
|
+
# dotenv environment variable files
|
|
96
|
+
|
|
97
|
+
.env
|
|
98
|
+
.env.development.local
|
|
99
|
+
.env.test.local
|
|
100
|
+
.env.production.local
|
|
101
|
+
.env.local
|
|
102
|
+
|
|
103
|
+
# parcel-bundler cache (https://parceljs.org/)
|
|
104
|
+
|
|
105
|
+
.cache
|
|
106
|
+
.parcel-cache
|
|
107
|
+
|
|
108
|
+
# Next.js build output
|
|
109
|
+
|
|
110
|
+
.next
|
|
111
|
+
out
|
|
112
|
+
|
|
113
|
+
# Nuxt.js build / generate output
|
|
114
|
+
|
|
115
|
+
.nuxt
|
|
116
|
+
dist
|
|
117
|
+
|
|
118
|
+
# Gatsby files
|
|
119
|
+
|
|
120
|
+
.cache/
|
|
121
|
+
|
|
122
|
+
# Comment in the public line in if your project uses Gatsby and not Next.js
|
|
123
|
+
|
|
124
|
+
# https://nextjs.org/blog/next-9-1#public-directory-support
|
|
125
|
+
|
|
126
|
+
# public
|
|
127
|
+
|
|
128
|
+
# vuepress build output
|
|
129
|
+
|
|
130
|
+
.vuepress/dist
|
|
131
|
+
|
|
132
|
+
# vuepress v2.x temp and cache directory
|
|
133
|
+
|
|
134
|
+
.temp
|
|
135
|
+
.cache
|
|
136
|
+
|
|
137
|
+
# Docusaurus cache and generated files
|
|
138
|
+
|
|
139
|
+
.docusaurus
|
|
140
|
+
|
|
141
|
+
# Serverless directories
|
|
142
|
+
|
|
143
|
+
.serverless/
|
|
144
|
+
|
|
145
|
+
# FuseBox cache
|
|
146
|
+
|
|
147
|
+
.fusebox/
|
|
148
|
+
|
|
149
|
+
# DynamoDB Local files
|
|
150
|
+
|
|
151
|
+
.dynamodb/
|
|
152
|
+
|
|
153
|
+
# TernJS port file
|
|
154
|
+
|
|
155
|
+
.tern-port
|
|
156
|
+
|
|
157
|
+
# Stores VSCode versions used for testing VSCode extensions
|
|
158
|
+
|
|
159
|
+
.vscode-test
|
|
160
|
+
|
|
161
|
+
# yarn v2
|
|
162
|
+
|
|
163
|
+
.yarn/cache
|
|
164
|
+
.yarn/unplugged
|
|
165
|
+
.yarn/build-state.yml
|
|
166
|
+
.yarn/install-state.gz
|
|
167
|
+
.pnp.\*
|
|
168
|
+
|
|
169
|
+
# wrangler project
|
|
170
|
+
|
|
171
|
+
.dev.vars
|
|
172
|
+
.wrangler/
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<TBD>",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"deploy": "wrangler deploy",
|
|
7
|
+
"dev": "wrangler dev",
|
|
8
|
+
"start": "wrangler dev",
|
|
9
|
+
"test": "vitest"
|
|
10
|
+
},
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"@cloudflare/vitest-pool-workers": "^0.5.2",
|
|
13
|
+
"wrangler": "^3.60.3",
|
|
14
|
+
"vitest": "2.0.5"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Hello, World!</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<h1 id="heading"></h1>
|
|
10
|
+
<button id="button">Fetch a random UUID</button>
|
|
11
|
+
<div id="random"></div>
|
|
12
|
+
<script>
|
|
13
|
+
fetch('/message')
|
|
14
|
+
.then((resp) => resp.text())
|
|
15
|
+
.then((text) => {
|
|
16
|
+
const h1 = document.getElementById('heading');
|
|
17
|
+
h1.textContent = text;
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const button = document.getElementById("button");
|
|
21
|
+
button.addEventListener("click", () => {
|
|
22
|
+
fetch('/random')
|
|
23
|
+
.then((resp) => resp.text())
|
|
24
|
+
.then((text) => {
|
|
25
|
+
const random = document.getElementById('random');
|
|
26
|
+
random.textContent = text;
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
30
|
+
</body>
|
|
31
|
+
</html>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Welcome to Cloudflare Workers! This is your first worker.
|
|
3
|
+
*
|
|
4
|
+
* - Run `npm run dev` in your terminal to start a development server
|
|
5
|
+
* - Open a browser tab at http://localhost:8787/ to see your worker in action
|
|
6
|
+
* - Run `npm run deploy` to publish your worker
|
|
7
|
+
*
|
|
8
|
+
* Learn more at https://developers.cloudflare.com/workers/
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
async fetch(request, env, ctx) {
|
|
13
|
+
const url = new URL(request.url);
|
|
14
|
+
switch (url.pathname) {
|
|
15
|
+
case '/message':
|
|
16
|
+
return new Response('Hello, World!');
|
|
17
|
+
case '/random':
|
|
18
|
+
return new Response(crypto.randomUUID());
|
|
19
|
+
default:
|
|
20
|
+
return new Response('Not Found', { status: 404 });
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { env, createExecutionContext, waitOnExecutionContext, SELF } from 'cloudflare:test';
|
|
2
|
+
import { describe, it, expect } from 'vitest';
|
|
3
|
+
import worker from '../src';
|
|
4
|
+
|
|
5
|
+
describe('Hello World user worker', () => {
|
|
6
|
+
describe('request for /message', () => {
|
|
7
|
+
it('/ responds with "Hello, World!" (unit style)', async () => {
|
|
8
|
+
const request = new Request('http://example.com/message');
|
|
9
|
+
// Create an empty context to pass to `worker.fetch()`.
|
|
10
|
+
const ctx = createExecutionContext();
|
|
11
|
+
const response = await worker.fetch(request, env, ctx);
|
|
12
|
+
// Wait for all `Promise`s passed to `ctx.waitUntil()` to settle before running test assertions
|
|
13
|
+
await waitOnExecutionContext(ctx);
|
|
14
|
+
expect(await response.text()).toMatchInlineSnapshot(`"Hello, World!"`);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('responds with "Hello, World!" (integration style)', async () => {
|
|
18
|
+
const request = new Request('http://example.com/message');
|
|
19
|
+
const response = await SELF.fetch(request);
|
|
20
|
+
expect(await response.text()).toMatchInlineSnapshot(`"Hello, World!"`);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
describe('request for /random', () => {
|
|
25
|
+
it('/ responds with a random UUID (unit style)', async () => {
|
|
26
|
+
const request = new Request('http://example.com/random');
|
|
27
|
+
// Create an empty context to pass to `worker.fetch()`.
|
|
28
|
+
const ctx = createExecutionContext();
|
|
29
|
+
const response = await worker.fetch(request, env, ctx);
|
|
30
|
+
// Wait for all `Promise`s passed to `ctx.waitUntil()` to settle before running test assertions
|
|
31
|
+
await waitOnExecutionContext(ctx);
|
|
32
|
+
expect(await response.text()).toMatch(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('responds with a random UUID (integration style)', async () => {
|
|
36
|
+
const request = new Request('http://example.com/random');
|
|
37
|
+
const response = await SELF.fetch(request);
|
|
38
|
+
expect(await response.text()).toMatch(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|