create-cloudflare 0.0.0-e8df68ee → 0.0.0-e9106dfa5
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 +46741 -26097
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +104 -73
- 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.jsonc +5 -0
- package/templates/angular/c3.ts +9 -0
- package/templates/angular/pages/c3.ts +134 -0
- package/templates/angular/pages/templates/src/server.ts +15 -0
- package/templates/angular/pages/templates/tools/copy-files.mjs +15 -0
- package/templates/angular/workers/c3.ts +130 -0
- package/templates/angular/workers/templates/src/server.ts +15 -0
- package/templates/angular/workers/templates/wrangler.jsonc +12 -0
- package/templates/astro/c3.ts +9 -0
- package/templates/astro/pages/c3.ts +98 -0
- package/templates/astro/pages/templates/js/wrangler.jsonc +8 -0
- package/templates/astro/pages/templates/ts/src/env.d.ts +5 -0
- package/templates/astro/pages/templates/ts/worker-configuration.d.ts +4 -0
- package/templates/astro/pages/templates/ts/wrangler.jsonc +8 -0
- package/templates/astro/workers/c3.ts +98 -0
- package/templates/astro/workers/templates/js/public/.assetsignore +2 -0
- package/templates/astro/workers/templates/js/wrangler.jsonc +15 -0
- package/templates/astro/workers/templates/ts/public/.assetsignore +2 -0
- package/templates/astro/workers/templates/ts/src/env.d.ts +5 -0
- package/templates/astro/workers/templates/ts/worker-configuration.d.ts +4 -0
- package/templates/astro/workers/templates/ts/wrangler.jsonc +15 -0
- package/templates/common/c3.ts +23 -0
- package/templates/common/js/.editorconfig +0 -1
- package/templates/common/js/__dot__gitignore +172 -0
- package/templates/common/js/package.json +3 -3
- package/templates/common/js/wrangler.jsonc +8 -0
- package/templates/common/ts/.editorconfig +0 -1
- package/templates/common/ts/__dot__gitignore +172 -0
- package/templates/common/ts/package.json +6 -5
- package/templates/common/ts/src/ab-test.ts +2 -2
- package/templates/common/ts/src/{worker.ts → 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.jsonc +8 -0
- package/templates/docusaurus/c3.ts +9 -0
- package/templates/docusaurus/pages/c3.ts +30 -0
- package/templates/docusaurus/workers/c3.ts +33 -0
- package/templates/docusaurus/workers/templates/wrangler.jsonc +10 -0
- package/templates/gatsby/c3.ts +9 -0
- package/templates/gatsby/pages/c3.ts +50 -0
- package/templates/gatsby/workers/c3.ts +53 -0
- package/templates/gatsby/workers/templates/wrangler.jsonc +10 -0
- package/templates/hello-world/c3.ts +37 -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 +7 -5
- 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.jsonc +8 -0
- package/templates/hello-world/py/.python-version +1 -0
- package/templates/hello-world/py/README.md +23 -0
- package/templates/hello-world/py/__dot__gitignore +68 -0
- package/templates/hello-world/py/package.json +13 -0
- package/templates/hello-world/py/pyproject.toml +9 -0
- package/templates/hello-world/py/src/entry.py +4 -0
- package/templates/hello-world/py/uv.lock +22 -0
- package/templates/hello-world/py/wrangler.jsonc +9 -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 +9 -5
- package/templates/hello-world/ts/src/index.ts +18 -0
- package/templates/hello-world/ts/test/env.d.ts +3 -0
- 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 +8 -0
- package/templates/hello-world/ts/wrangler.jsonc +8 -0
- package/templates/hello-world-assets-only/c3.ts +16 -0
- package/templates/hello-world-assets-only/templates/package.json +13 -0
- package/templates/hello-world-assets-only/templates/public/index.html +11 -0
- package/templates/hello-world-assets-only/templates/wrangler.jsonc +10 -0
- package/templates/hello-world-durable-object/c3.ts +21 -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 +70 -0
- package/templates/hello-world-durable-object/js/wrangler.jsonc +24 -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 +66 -0
- package/templates/hello-world-durable-object/ts/tsconfig.json +42 -0
- package/templates/hello-world-durable-object/ts/worker-configuration.d.ts +7 -0
- package/templates/hello-world-durable-object/ts/wrangler.jsonc +24 -0
- package/templates/hello-world-durable-object-with-assets/c3.ts +23 -0
- package/templates/hello-world-durable-object-with-assets/js/.editorconfig +12 -0
- package/templates/hello-world-durable-object-with-assets/js/.prettierrc +6 -0
- package/templates/hello-world-durable-object-with-assets/js/__dot__gitignore +172 -0
- package/templates/hello-world-durable-object-with-assets/js/package.json +13 -0
- package/templates/hello-world-durable-object-with-assets/js/public/index.html +19 -0
- package/templates/hello-world-durable-object-with-assets/js/src/index.js +70 -0
- package/templates/hello-world-durable-object-with-assets/js/wrangler.jsonc +28 -0
- package/templates/hello-world-durable-object-with-assets/ts/.editorconfig +12 -0
- package/templates/hello-world-durable-object-with-assets/ts/.prettierrc +6 -0
- package/templates/hello-world-durable-object-with-assets/ts/__dot__gitignore +172 -0
- package/templates/hello-world-durable-object-with-assets/ts/package.json +15 -0
- package/templates/hello-world-durable-object-with-assets/ts/public/index.html +19 -0
- package/templates/hello-world-durable-object-with-assets/ts/src/index.ts +67 -0
- package/templates/hello-world-durable-object-with-assets/ts/tsconfig.json +42 -0
- package/templates/hello-world-durable-object-with-assets/ts/worker-configuration.d.ts +8 -0
- package/templates/hello-world-durable-object-with-assets/ts/wrangler.jsonc +28 -0
- package/templates/hello-world-with-assets/c3.ts +24 -0
- package/templates/hello-world-with-assets/js/.editorconfig +12 -0
- package/templates/hello-world-with-assets/js/.prettierrc +6 -0
- package/templates/hello-world-with-assets/js/__dot__gitignore +172 -0
- package/templates/hello-world-with-assets/js/package.json +16 -0
- package/templates/hello-world-with-assets/js/public/index.html +31 -0
- package/templates/hello-world-with-assets/js/src/index.js +23 -0
- package/templates/hello-world-with-assets/js/test/index.spec.js +41 -0
- package/templates/hello-world-with-assets/js/vitest.config.js +11 -0
- package/templates/hello-world-with-assets/js/wrangler.jsonc +15 -0
- package/templates/hello-world-with-assets/py/__dot__gitignore +68 -0
- package/templates/hello-world-with-assets/py/package.json +13 -0
- package/templates/hello-world-with-assets/py/public/index.html +31 -0
- package/templates/hello-world-with-assets/py/src/entry.py +9 -0
- package/templates/hello-world-with-assets/py/wrangler.jsonc +15 -0
- package/templates/hello-world-with-assets/ts/.editorconfig +12 -0
- package/templates/hello-world-with-assets/ts/.prettierrc +6 -0
- package/templates/hello-world-with-assets/ts/__dot__gitignore +172 -0
- package/templates/hello-world-with-assets/ts/package.json +18 -0
- package/templates/hello-world-with-assets/ts/public/index.html +31 -0
- package/templates/hello-world-with-assets/ts/src/index.ts +26 -0
- package/templates/hello-world-with-assets/ts/test/env.d.ts +3 -0
- package/templates/hello-world-with-assets/ts/test/index.spec.ts +41 -0
- package/templates/hello-world-with-assets/ts/test/tsconfig.json +8 -0
- package/templates/hello-world-with-assets/ts/tsconfig.json +44 -0
- package/templates/hello-world-with-assets/ts/vitest.config.mts +11 -0
- package/templates/hello-world-with-assets/ts/worker-configuration.d.ts +7 -0
- package/templates/hello-world-with-assets/ts/wrangler.jsonc +15 -0
- package/templates/hono/c3.ts +9 -0
- package/templates/hono/pages/c3.ts +42 -0
- package/templates/hono/pages/templates/src/index.tsx +12 -0
- package/templates/hono/pages/templates/worker-configuration.d.ts +4 -0
- package/templates/hono/pages/templates/wrangler.jsonc +9 -0
- package/templates/hono/workers/c3.ts +42 -0
- package/templates/hono/workers/templates/public/index.html +19 -0
- package/templates/hono/workers/templates/src/index.ts +9 -0
- package/templates/hono/workers/templates/worker-configuration.d.ts +4 -0
- package/templates/hono/workers/templates/wrangler.jsonc +9 -0
- package/templates/next/README.md +67 -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 +21 -0
- package/templates/next/app/ts/app/not-found.tsx +58 -0
- package/templates/next/c3.ts +223 -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.jsonc +8 -0
- package/templates/nuxt/c3.ts +9 -0
- package/templates/nuxt/pages/c3.ts +146 -0
- package/templates/nuxt/pages/templates/env.d.ts +14 -0
- package/templates/nuxt/pages/templates/worker-configuration.d.ts +4 -0
- package/templates/nuxt/pages/templates/wrangler.jsonc +5 -0
- package/templates/nuxt/workers/c3.ts +146 -0
- package/templates/nuxt/workers/templates/env.d.ts +14 -0
- package/templates/nuxt/workers/templates/worker-configuration.d.ts +4 -0
- package/templates/nuxt/workers/templates/wrangler.jsonc +12 -0
- package/templates/openapi/c3.ts +14 -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.jsonc +8 -0
- package/templates/pre-existing/c3.ts +106 -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/queues/c3.ts +32 -0
- package/templates/queues/js/.editorconfig +0 -1
- package/templates/queues/js/__dot__gitignore +172 -0
- package/templates/queues/js/package.json +3 -4
- package/templates/queues/js/wrangler.jsonc +21 -0
- package/templates/queues/ts/.editorconfig +0 -1
- package/templates/queues/ts/__dot__gitignore +172 -0
- package/templates/queues/ts/package.json +6 -5
- package/templates/queues/ts/src/{worker.ts → 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.jsonc +21 -0
- package/templates/qwik/c3.ts +9 -0
- package/templates/qwik/pages/c3.ts +149 -0
- package/templates/qwik/pages/snippets/getPlatformProxy.ts +6 -0
- package/templates/qwik/pages/templates/worker-configuration.d.ts +4 -0
- package/templates/qwik/pages/templates/wrangler.jsonc +8 -0
- package/templates/qwik/workers/c3.ts +154 -0
- package/templates/qwik/workers/snippets/getPlatformProxy.ts +6 -0
- package/templates/qwik/workers/templates/public/.assetsignore +4 -0
- package/templates/qwik/workers/templates/worker-configuration.d.ts +4 -0
- package/templates/qwik/workers/templates/wrangler.jsonc +15 -0
- package/templates/react/c3.ts +9 -0
- package/templates/react/pages/c3.ts +62 -0
- package/templates/react/workers/c3.ts +183 -0
- package/templates/react/workers/js/api/index.js +13 -0
- package/templates/react/workers/js/src/App.css +45 -0
- package/templates/react/workers/js/src/App.jsx +58 -0
- package/templates/react/workers/js/src/assets/Cloudflare_Logo.svg +53 -0
- package/templates/react/workers/js/wrangler.jsonc +9 -0
- package/templates/react/workers/ts/api/index.ts +13 -0
- package/templates/react/workers/ts/src/App.css +45 -0
- package/templates/react/workers/ts/src/App.tsx +58 -0
- package/templates/react/workers/ts/src/assets/Cloudflare_Logo.svg +51 -0
- package/templates/react/workers/ts/tsconfig.worker.json +8 -0
- package/templates/react/workers/ts/worker-configuration.d.ts +5 -0
- package/templates/react/workers/ts/wrangler.jsonc +9 -0
- package/templates/react-router/c3.ts +53 -0
- package/templates/react-router/templates/worker-configuration.d.ts +8 -0
- package/templates/remix/c3.ts +10 -0
- package/templates/remix/pages/c3.ts +68 -0
- package/templates/remix/pages/templates/worker-configuration.d.ts +4 -0
- package/templates/remix/pages/templates/wrangler.jsonc +5 -0
- package/templates/remix/workers/c3.ts +52 -0
- package/templates/remix/workers/templates/public/.assetsignore +0 -0
- package/templates/remix/workers/templates/worker-configuration.d.ts +4 -0
- package/templates/remix/workers/templates/wrangler.toml +11 -0
- package/templates/scheduled/c3.ts +22 -0
- package/templates/scheduled/js/.editorconfig +0 -1
- package/templates/scheduled/js/__dot__gitignore +172 -0
- package/templates/scheduled/js/package.json +4 -5
- package/templates/scheduled/js/src/{worker.js → index.js} +9 -2
- package/templates/scheduled/js/wrangler.jsonc +13 -0
- package/templates/scheduled/ts/.editorconfig +0 -1
- package/templates/scheduled/ts/__dot__gitignore +172 -0
- package/templates/scheduled/ts/package.json +6 -5
- package/templates/scheduled/ts/src/index.ts +33 -0
- package/templates/scheduled/ts/tsconfig.json +36 -95
- package/templates/scheduled/ts/worker-configuration.d.ts +4 -0
- package/templates/scheduled/ts/wrangler.jsonc +13 -0
- package/templates/solid/c3.ts +87 -0
- package/templates/solid/templates/wrangler.jsonc +8 -0
- package/templates/svelte/c3.ts +9 -0
- package/templates/svelte/pages/c3.ts +159 -0
- package/templates/svelte/pages/templates/wrangler.jsonc +5 -0
- package/templates/svelte/workers/c3.ts +129 -0
- package/templates/svelte/workers/templates/static/.assetsignore +2 -0
- package/templates/svelte/workers/templates/wrangler.jsonc +12 -0
- package/templates/vue/c3.ts +9 -0
- package/templates/vue/pages/c3.ts +30 -0
- package/templates/vue/workers/c3.ts +98 -0
- package/templates/vue/workers/js/server/index.js +13 -0
- package/templates/vue/workers/js/src/App.vue +107 -0
- package/templates/vue/workers/js/src/components/HelloWorld.vue +47 -0
- package/templates/vue/workers/js/vite.config.js +21 -0
- package/templates/vue/workers/js/wrangler.jsonc +12 -0
- package/templates/vue/workers/ts/server/index.ts +13 -0
- package/templates/vue/workers/ts/src/App.vue +107 -0
- package/templates/vue/workers/ts/src/components/HelloWorld.vue +44 -0
- package/templates/vue/workers/ts/tsconfig.worker.json +8 -0
- package/templates/vue/workers/ts/vite.config.ts +21 -0
- package/templates/vue/workers/ts/worker-configuration.d.ts +6 -0
- package/templates/vue/workers/ts/wrangler.jsonc +12 -0
- package/templates-experimental/next/c3.ts +75 -0
- package/templates-experimental/next/templates/.dev.vars +2 -0
- package/templates-experimental/next/templates/__dot__gitignore +39 -0
- package/templates-experimental/next/templates/cloudflare-env.d.ts +5 -0
- package/templates-experimental/next/templates/open-next.config.ts +6 -0
- package/templates-experimental/next/templates/wrangler.jsonc +12 -0
- package/templates-experimental/solid/c3.ts +94 -0
- package/templates-experimental/solid/templates/wrangler.jsonc +15 -0
- package/dist/angular/templates/src/main.server.ts +0 -35
- package/dist/angular/templates/tools/bundle.mjs +0 -74
- 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/tools/paths.mjs +0 -9
- 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/templates/common/js/wrangler.toml +0 -51
- package/templates/common/ts/wrangler.toml +0 -51
- package/templates/hello-world/js/wrangler.toml +0 -51
- package/templates/hello-world/ts/src/worker.ts +0 -32
- package/templates/hello-world/ts/wrangler.toml +0 -51
- package/templates/queues/js/wrangler.toml +0 -19
- package/templates/queues/ts/wrangler.toml +0 -19
- package/templates/scheduled/js/wrangler.toml +0 -9
- package/templates/scheduled/ts/src/worker.ts +0 -50
- package/templates/scheduled/ts/wrangler.toml +0 -9
- /package/{dist/angular → templates/angular/pages}/templates/src/_routes.json +0 -0
- /package/templates/common/js/src/{worker.js → index.js} +0 -0
- /package/templates/hello-world/js/src/{worker.js → index.js} +0 -0
- /package/templates/queues/js/src/{worker.js → index.js} +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { logRaw, updateStatus } from "@cloudflare/cli";
|
|
2
|
+
import { blue, brandColor, dim } from "@cloudflare/cli/colors";
|
|
3
|
+
import { runFrameworkGenerator } from "frameworks/index";
|
|
4
|
+
import { transformFile } from "helpers/codemod";
|
|
5
|
+
import { runCommand } from "helpers/command";
|
|
6
|
+
import { usesTypescript } from "helpers/files";
|
|
7
|
+
import { detectPackageManager } from "helpers/packageManagers";
|
|
8
|
+
import * as recast from "recast";
|
|
9
|
+
import type { TemplateConfig } from "../../../src/templates";
|
|
10
|
+
import type { C3Context, PackageJson } from "types";
|
|
11
|
+
|
|
12
|
+
const { npx } = detectPackageManager();
|
|
13
|
+
|
|
14
|
+
const generate = async (ctx: C3Context) => {
|
|
15
|
+
await runFrameworkGenerator(ctx, [ctx.project.name, "--no-install"]);
|
|
16
|
+
|
|
17
|
+
logRaw(""); // newline
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const configure = async () => {
|
|
21
|
+
await runCommand([npx, "astro", "add", "cloudflare", "-y"], {
|
|
22
|
+
silent: true,
|
|
23
|
+
startText: "Installing adapter",
|
|
24
|
+
doneText: `${brandColor("installed")} ${dim(
|
|
25
|
+
`via \`${npx} astro add cloudflare\``,
|
|
26
|
+
)}`,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
updateAstroConfig();
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const updateAstroConfig = () => {
|
|
33
|
+
const filePath = "astro.config.mjs";
|
|
34
|
+
|
|
35
|
+
updateStatus(`Updating configuration in ${blue(filePath)}`);
|
|
36
|
+
|
|
37
|
+
transformFile(filePath, {
|
|
38
|
+
visitCallExpression: function (n) {
|
|
39
|
+
const callee = n.node.callee as recast.types.namedTypes.Identifier;
|
|
40
|
+
if (callee.name !== "cloudflare") {
|
|
41
|
+
return this.traverse(n);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const b = recast.types.builders;
|
|
45
|
+
n.node.arguments = [
|
|
46
|
+
b.objectExpression([
|
|
47
|
+
b.objectProperty(
|
|
48
|
+
b.identifier("platformProxy"),
|
|
49
|
+
b.objectExpression([
|
|
50
|
+
b.objectProperty(b.identifier("enabled"), b.booleanLiteral(true)),
|
|
51
|
+
]),
|
|
52
|
+
),
|
|
53
|
+
]),
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
return false;
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const config: TemplateConfig = {
|
|
62
|
+
configVersion: 1,
|
|
63
|
+
id: "astro",
|
|
64
|
+
frameworkCli: "create-astro",
|
|
65
|
+
platform: "workers",
|
|
66
|
+
displayName: "Astro",
|
|
67
|
+
copyFiles: {
|
|
68
|
+
async selectVariant(ctx) {
|
|
69
|
+
// Note: this `selectVariant` function should not be needed
|
|
70
|
+
// this is just a quick workaround until
|
|
71
|
+
// https://github.com/cloudflare/workers-sdk/issues/7495
|
|
72
|
+
// is resolved
|
|
73
|
+
return usesTypescript(ctx) ? "ts" : "js";
|
|
74
|
+
},
|
|
75
|
+
variants: {
|
|
76
|
+
js: {
|
|
77
|
+
path: "./templates/js",
|
|
78
|
+
},
|
|
79
|
+
ts: {
|
|
80
|
+
path: "./templates/ts",
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
devScript: "dev",
|
|
85
|
+
deployScript: "deploy",
|
|
86
|
+
previewScript: "preview",
|
|
87
|
+
path: "templates/astro/workers",
|
|
88
|
+
generate,
|
|
89
|
+
configure,
|
|
90
|
+
transformPackageJson: async (pkgJson: PackageJson, ctx: C3Context) => ({
|
|
91
|
+
scripts: {
|
|
92
|
+
deploy: `astro build && wrangler deploy`,
|
|
93
|
+
preview: `astro build && wrangler dev`,
|
|
94
|
+
...(usesTypescript(ctx) && { "cf-typegen": `wrangler types` }),
|
|
95
|
+
},
|
|
96
|
+
}),
|
|
97
|
+
};
|
|
98
|
+
export default config;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<TBD>",
|
|
3
|
+
"main": "./dist/_worker.js/index.js",
|
|
4
|
+
"compatibility_date": "<TBD>",
|
|
5
|
+
"compatibility_flags": [
|
|
6
|
+
"nodejs_compat"
|
|
7
|
+
],
|
|
8
|
+
"assets": {
|
|
9
|
+
"binding": "ASSETS",
|
|
10
|
+
"directory": "./dist"
|
|
11
|
+
},
|
|
12
|
+
"observability": {
|
|
13
|
+
"enabled": true
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<TBD>",
|
|
3
|
+
"main": "./dist/_worker.js/index.js",
|
|
4
|
+
"compatibility_date": "<TBD>",
|
|
5
|
+
"compatibility_flags": [
|
|
6
|
+
"nodejs_compat"
|
|
7
|
+
],
|
|
8
|
+
"assets": {
|
|
9
|
+
"binding": "ASSETS",
|
|
10
|
+
"directory": "./dist"
|
|
11
|
+
},
|
|
12
|
+
"observability": {
|
|
13
|
+
"enabled": true
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TemplateConfig } from "../../src/templates";
|
|
2
|
+
|
|
3
|
+
const config: TemplateConfig = {
|
|
4
|
+
configVersion: 1,
|
|
5
|
+
id: "common",
|
|
6
|
+
displayName: "Example router & proxy Worker",
|
|
7
|
+
description:
|
|
8
|
+
"Create a Worker to route and forward requests to other services",
|
|
9
|
+
platform: "workers",
|
|
10
|
+
hidden: true,
|
|
11
|
+
copyFiles: {
|
|
12
|
+
variants: {
|
|
13
|
+
js: {
|
|
14
|
+
path: "./js",
|
|
15
|
+
},
|
|
16
|
+
ts: {
|
|
17
|
+
path: "./ts",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default config;
|
|
@@ -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/
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"version": "0.0.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
|
-
"deploy": "wrangler
|
|
6
|
+
"deploy": "wrangler deploy",
|
|
7
|
+
"dev": "wrangler dev",
|
|
7
8
|
"start": "wrangler dev"
|
|
8
9
|
},
|
|
9
10
|
"devDependencies": {
|
|
10
|
-
"@cloudflare/workers-types": "^4.20230419.0",
|
|
11
11
|
"itty-router": "^3.0.12",
|
|
12
|
-
"wrangler": "^3.
|
|
12
|
+
"wrangler": "^3.101.0"
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -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/
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
"version": "0.0.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
|
-
"deploy": "wrangler
|
|
7
|
-
"
|
|
6
|
+
"deploy": "wrangler deploy",
|
|
7
|
+
"dev": "wrangler dev",
|
|
8
|
+
"start": "wrangler dev",
|
|
9
|
+
"cf-typegen": "wrangler types"
|
|
8
10
|
},
|
|
9
11
|
"devDependencies": {
|
|
10
|
-
"@cloudflare/workers-types": "^4.20230419.0",
|
|
11
12
|
"itty-router": "^3.0.12",
|
|
12
|
-
"typescript": "^5.
|
|
13
|
-
"wrangler": "^3.
|
|
13
|
+
"typescript": "^5.5.2",
|
|
14
|
+
"wrangler": "^3.101.0"
|
|
14
15
|
}
|
|
15
16
|
}
|
|
@@ -6,7 +6,7 @@ const EXPERIMENTS = [
|
|
|
6
6
|
];
|
|
7
7
|
|
|
8
8
|
export default {
|
|
9
|
-
async fetch(request
|
|
9
|
+
async fetch(request, env, ctx): Promise<Response> {
|
|
10
10
|
const fingerprint = [request.headers.get('cf-connecting-ip'), request.cf?.postalCode]; // add any values you want considered as a fingerprint
|
|
11
11
|
const activeExperiments = await getActiveExperiments(fingerprint, EXPERIMENTS);
|
|
12
12
|
|
|
@@ -22,7 +22,7 @@ export default {
|
|
|
22
22
|
|
|
23
23
|
return rewriter.transform(res);
|
|
24
24
|
},
|
|
25
|
-
}
|
|
25
|
+
} satisfies ExportedHandler<Env>;
|
|
26
26
|
|
|
27
27
|
// Get active experiments by hashing a fingerprint
|
|
28
28
|
async function getActiveExperiments(fingerprint: unknown, experiments: Array<{ name: string; threshold: number }>) {
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
* - Open a browser tab at http://localhost:8787/ to see your worker in action
|
|
6
6
|
* - Run `npm run deploy` to publish your worker
|
|
7
7
|
*
|
|
8
|
+
* Bind resources to your Worker in `wrangler.jsonc`. After adding bindings, a type definition for the
|
|
9
|
+
* `Env` object can be regenerated with `npm run cf-typegen`.
|
|
10
|
+
*
|
|
8
11
|
* Learn more at https://developers.cloudflare.com/workers/
|
|
9
12
|
*/
|
|
10
13
|
|
|
@@ -16,7 +19,7 @@ import apiRouter from './router';
|
|
|
16
19
|
export default {
|
|
17
20
|
// The fetch handler is invoked when this worker receives a HTTP(S) request
|
|
18
21
|
// and should return a Response (optionally wrapped in a Promise)
|
|
19
|
-
async fetch(request
|
|
22
|
+
async fetch(request, env, ctx): Promise<Response> {
|
|
20
23
|
// You'll find it helpful to parse the request.url string into a URL object. Learn more at https://developer.mozilla.org/en-US/docs/Web/API/URL
|
|
21
24
|
const url = new URL(request.url);
|
|
22
25
|
|
|
@@ -43,4 +46,4 @@ export default {
|
|
|
43
46
|
{ headers: { 'Content-Type': 'text/html' } }
|
|
44
47
|
);
|
|
45
48
|
},
|
|
46
|
-
}
|
|
49
|
+
} satisfies ExportedHandler<Env>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
async fetch(request
|
|
2
|
+
async fetch(request, env, ctx): Promise<Response> {
|
|
3
3
|
const url = new URL(request.url);
|
|
4
4
|
|
|
5
5
|
const proxyUrl = url.searchParams.get('proxyUrl'); // get a query param value (?proxyUrl=...)
|
|
@@ -20,4 +20,4 @@ export default {
|
|
|
20
20
|
|
|
21
21
|
return res;
|
|
22
22
|
},
|
|
23
|
-
}
|
|
23
|
+
} satisfies ExportedHandler<Env>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
async fetch(request
|
|
2
|
+
async fetch(request, env, ctx): Promise<Response> {
|
|
3
3
|
const url = new URL(request.url);
|
|
4
4
|
const redirectUrl = url.searchParams.get('redirectUrl'); // get a query param value (?redirectUrl=...)
|
|
5
5
|
|
|
@@ -10,4 +10,4 @@ export default {
|
|
|
10
10
|
// The Response class has static methods to create common Response objects as a convenience
|
|
11
11
|
return Response.redirect(redirectUrl);
|
|
12
12
|
},
|
|
13
|
-
}
|
|
13
|
+
} satisfies ExportedHandler<Env>;
|