diff --git a/.gitignore b/.gitignore index db86e9998211..d9ee7c5c8d9c 100644 --- a/.gitignore +++ b/.gitignore @@ -108,13 +108,6 @@ web_modules/ # Yarn Integrity file .yarn-integrity -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache .parcel-cache @@ -232,5 +225,8 @@ dist/** .e2e-test-report/ -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .node-cache/ diff --git a/fixtures/container-app/.gitignore b/fixtures/container-app/.gitignore index 83163c9c392b..c6e1d1c6d070 100644 --- a/fixtures/container-app/.gitignore +++ b/fixtures/container-app/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,6 +160,9 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ worker-configuration.d.ts diff --git a/packages/create-cloudflare/src/__tests__/templates.test.ts b/packages/create-cloudflare/src/__tests__/templates.test.ts index dbfc1712d2bc..0c56767d41bd 100644 --- a/packages/create-cloudflare/src/__tests__/templates.test.ts +++ b/packages/create-cloudflare/src/__tests__/templates.test.ts @@ -88,6 +88,9 @@ describe("addWranglerToGitIgnore", () => { # wrangler files .wrangler .dev.vars* + !.dev.vars.example + .env* + !.env.example " `); }); @@ -97,7 +100,10 @@ describe("addWranglerToGitIgnore", () => { "my-project/.gitignore", ` node_modules - .dev.vars + .dev.vars* + !.dev.vars.example + .env* + !.env.example .vscode .wrangler `, @@ -116,7 +122,10 @@ describe("addWranglerToGitIgnore", () => { ` node_modules .wrangler # This is for wrangler - .dev.vars # this is for wrangler and getPlatformProxy + .dev.vars* # this is for wrangler and getPlatformProxy + !.dev.vars.example # more comments + .env* # even more + !.env.example # and a final one .vscode `, ); @@ -128,12 +137,68 @@ describe("addWranglerToGitIgnore", () => { expect(appendFileResults.content).toBeUndefined(); }); - test("should append to the gitignore file the missing wrangler files when some is already present (without including the section heading)", () => { + test("should append to the gitignore file the missing wrangler files when some are already present (should add the section heading if including .wrangler and some others)", () => { mockGitIgnore( "my-project/.gitignore", ` node_modules - .dev.vars + .dev.vars* + .vscode`, + ); + addWranglerToGitIgnore({ + project: { path: "my-project" }, + } as unknown as C3Context); + + expect(appendFileResults.file).toMatchInlineSnapshot( + `"my-project/.gitignore"`, + ); + expect(appendFileResults.content).toMatchInlineSnapshot(` + " + + # wrangler files + .wrangler + !.dev.vars.example + .env* + !.env.example + " + `); + }); + + test("should append to the gitignore file the missing wrangler files when some are already present (should not add the section heading if .wrangler already exists)", () => { + mockGitIgnore( + "my-project/.gitignore", + ` + node_modules + .wrangler + .dev.vars* + .vscode`, + ); + addWranglerToGitIgnore({ + project: { path: "my-project" }, + } as unknown as C3Context); + + expect(appendFileResults.file).toMatchInlineSnapshot( + `"my-project/.gitignore"`, + ); + expect(appendFileResults.content).toMatchInlineSnapshot(` + " + + !.dev.vars.example + .env* + !.env.example + " + `); + }); + + test("should append to the gitignore file the missing wrangler files when some are already present (should not add the section heading if only adding .wrangler)", () => { + mockGitIgnore( + "my-project/.gitignore", + ` + node_modules + .dev.vars* + !.dev.vars.example + .env* + !.env.example .vscode`, ); addWranglerToGitIgnore({ @@ -156,7 +221,10 @@ describe("addWranglerToGitIgnore", () => { "my-project/.gitignore", ` node_modules - .dev.vars + .dev.vars* + !.dev.vars.example + .env* + !.env.example .vscode `, @@ -203,6 +271,9 @@ describe("addWranglerToGitIgnore", () => { # wrangler files .wrangler .dev.vars* + !.dev.vars.example + .env* + !.env.example " `); }); @@ -221,6 +292,34 @@ describe("addWranglerToGitIgnore", () => { expect(writeFileResults.content).toBeUndefined(); }); + test("should add the wildcard .dev.vars* entry even if a .dev.vars is already included", () => { + mockGitIgnore( + "my-project/.gitignore", + ` + node_modules + .dev.vars + .vscode + `, + ); + addWranglerToGitIgnore({ + project: { path: "my-project" }, + } as unknown as C3Context); + + expect(appendFileResults.file).toMatchInlineSnapshot( + `"my-project/.gitignore"`, + ); + expect(appendFileResults.content).toMatchInlineSnapshot(` + " + # wrangler files + .wrangler + .dev.vars* + !.dev.vars.example + .env* + !.env.example + " + `); + }); + test("should not add the .wrangler entry if a .wrangler/ is already included)", () => { mockGitIgnore( "my-project/.gitignore", @@ -240,6 +339,9 @@ describe("addWranglerToGitIgnore", () => { expect(appendFileResults.content).toMatchInlineSnapshot(` " .dev.vars* + !.dev.vars.example + .env* + !.env.example " `); }); diff --git a/packages/create-cloudflare/src/templates.ts b/packages/create-cloudflare/src/templates.ts index a242bd46f179..4dd5175b929c 100644 --- a/packages/create-cloudflare/src/templates.ts +++ b/packages/create-cloudflare/src/templates.ts @@ -916,12 +916,31 @@ export const addWranglerToGitIgnore = (ctx: C3Context) => { } const hasDotDevDotVars = existingGitIgnoreContent.match( - /^\/?\.dev\.vars(\.?\*)?(\s|$)/m, + /^\/?\.dev\.vars\*(\s|$)/m, ); if (!hasDotDevDotVars) { wranglerGitIgnoreFilesToAdd.push(".dev.vars*"); } + const hasDotDevVarsExample = existingGitIgnoreContent.match( + /^!\/?\.dev\.vars\.example(\s|$)/m, + ); + if (!hasDotDevVarsExample) { + wranglerGitIgnoreFilesToAdd.push("!.dev.vars.example"); + } + + const hasDotEnv = existingGitIgnoreContent.match(/^\/?\.env\*(\s|$)/m); + if (!hasDotEnv) { + wranglerGitIgnoreFilesToAdd.push(".env*"); + } + + const hasDotEnvExample = existingGitIgnoreContent.match( + /^!\/?\.env\.example(\s|$)/m, + ); + if (!hasDotEnvExample) { + wranglerGitIgnoreFilesToAdd.push("!.env.example"); + } + if (wranglerGitIgnoreFilesToAdd.length === 0) { return; } @@ -934,7 +953,7 @@ export const addWranglerToGitIgnore = (ctx: C3Context) => { ...(!existingGitIgnoreContent.match(/\n\s*$/) ? [""] : []), ]; - if (wranglerGitIgnoreFilesToAdd.length > 1) { + if (!hasDotWrangler && wranglerGitIgnoreFilesToAdd.length > 1) { linesToAppend.push("# wrangler files"); } diff --git a/packages/create-cloudflare/templates/common/js/.gitignore b/packages/create-cloudflare/templates/common/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/common/js/.gitignore +++ b/packages/create-cloudflare/templates/common/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/common/ts/.gitignore b/packages/create-cloudflare/templates/common/ts/.gitignore index 3b0fe33c47f1..a1be4ced06f4 100644 --- a/packages/create-cloudflare/templates/common/ts/.gitignore +++ b/packages/create-cloudflare/templates/common/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.gitignore b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/py/.gitignore b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/py/.gitignore index 5a6ee479c982..a4af2be243b3 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/py/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/py/.gitignore @@ -48,14 +48,6 @@ jspm_packages/ \*.tgz -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # public # Stores VSCode versions used for testing VSCode extensions @@ -64,5 +56,8 @@ jspm_packages/ # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.gitignore b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/.gitignore b/packages/create-cloudflare/templates/hello-world-durable-object/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/py/.gitignore b/packages/create-cloudflare/templates/hello-world-durable-object/py/.gitignore index 5a6ee479c982..a4af2be243b3 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/py/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-durable-object/py/.gitignore @@ -48,14 +48,6 @@ jspm_packages/ \*.tgz -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # public # Stores VSCode versions used for testing VSCode extensions @@ -64,5 +56,8 @@ jspm_packages/ # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/.gitignore b/packages/create-cloudflare/templates/hello-world-durable-object/ts/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/.gitignore b/packages/create-cloudflare/templates/hello-world-with-assets/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/py/.gitignore b/packages/create-cloudflare/templates/hello-world-with-assets/py/.gitignore index 5a6ee479c982..a4af2be243b3 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/py/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-with-assets/py/.gitignore @@ -48,14 +48,6 @@ jspm_packages/ \*.tgz -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # public # Stores VSCode versions used for testing VSCode extensions @@ -64,5 +56,8 @@ jspm_packages/ # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/.gitignore b/packages/create-cloudflare/templates/hello-world-with-assets/ts/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/.gitignore +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world/js/.gitignore b/packages/create-cloudflare/templates/hello-world/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world/js/.gitignore +++ b/packages/create-cloudflare/templates/hello-world/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world/py/.gitignore b/packages/create-cloudflare/templates/hello-world/py/.gitignore index 5a6ee479c982..a4af2be243b3 100644 --- a/packages/create-cloudflare/templates/hello-world/py/.gitignore +++ b/packages/create-cloudflare/templates/hello-world/py/.gitignore @@ -48,14 +48,6 @@ jspm_packages/ \*.tgz -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # public # Stores VSCode versions used for testing VSCode extensions @@ -64,5 +56,8 @@ jspm_packages/ # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/hello-world/ts/.gitignore b/packages/create-cloudflare/templates/hello-world/ts/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/.gitignore +++ b/packages/create-cloudflare/templates/hello-world/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/openapi/ts/.gitignore b/packages/create-cloudflare/templates/openapi/ts/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/openapi/ts/.gitignore +++ b/packages/create-cloudflare/templates/openapi/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/pre-existing/js/.gitignore b/packages/create-cloudflare/templates/pre-existing/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/pre-existing/js/.gitignore +++ b/packages/create-cloudflare/templates/pre-existing/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/queues/js/.gitignore b/packages/create-cloudflare/templates/queues/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/queues/js/.gitignore +++ b/packages/create-cloudflare/templates/queues/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/queues/ts/.gitignore b/packages/create-cloudflare/templates/queues/ts/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/queues/ts/.gitignore +++ b/packages/create-cloudflare/templates/queues/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/scheduled/js/.gitignore b/packages/create-cloudflare/templates/scheduled/js/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/scheduled/js/.gitignore +++ b/packages/create-cloudflare/templates/scheduled/js/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/create-cloudflare/templates/scheduled/ts/.gitignore b/packages/create-cloudflare/templates/scheduled/ts/.gitignore index 3b0fe33c47f1..4138168d756e 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/.gitignore +++ b/packages/create-cloudflare/templates/scheduled/ts/.gitignore @@ -92,14 +92,6 @@ web_modules/ .yarn-integrity -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - # parcel-bundler cache (https://parceljs.org/) .cache @@ -168,5 +160,8 @@ dist # wrangler project -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example .wrangler/ diff --git a/packages/playground-preview-worker/.gitignore b/packages/playground-preview-worker/.gitignore index 073e02da0a11..254ea85ec87e 100644 --- a/packages/playground-preview-worker/.gitignore +++ b/packages/playground-preview-worker/.gitignore @@ -1,3 +1,6 @@ node_modules .wrangler -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example diff --git a/packages/turbo-r2-archive/.gitignore b/packages/turbo-r2-archive/.gitignore index e0d942ec2bf3..6177dc062986 100644 --- a/packages/turbo-r2-archive/.gitignore +++ b/packages/turbo-r2-archive/.gitignore @@ -1,6 +1,8 @@ node_modules -.env dist .wrangler .turbo -.dev.vars +.dev.vars* +!.dev.vars.example +.env* +!.env.example diff --git a/packages/workers.new/src/index.ts b/packages/workers.new/src/index.ts index 5f1eb6c216a7..3a3d50a94f74 100644 --- a/packages/workers.new/src/index.ts +++ b/packages/workers.new/src/index.ts @@ -1,153 +1,7 @@ -// Redirect https://workers.new/ requests to IDE. -// Redirect https://workers.new/*? requests to the Workers Playground. -// Similar to the concept of https://docs.new. -type Redirects = Record< - string, - [ - /* subdirectory */ string, - /* file */ string, - /* title */ string, - /* terminal */ string?, - ] ->; - -// stackblitz repository source -const source = "github/cloudflare/workers-sdk/tree/main/templates"; - -// deploy with cloudflare source -const src = "https://github.com/cloudflare/workers-sdk/tree/main/templates"; - -export const redirects: Redirects = { - "/pages-image-sharing": [ - "pages-image-sharing", - "src/index.tsx", - "Image Sharing Website with Pages Functions", - ], - "/stream/auth/stripe": [ - "stream/auth/stripe", - "src/index.html", - "Stream + Stripe Checkout", - ], - "/worker-durable-objects": [ - "worker-durable-objects", - "index.js", - "Workers Durable Objects counter", - ], - "/d1": ["worker-d1", "src/index.ts", "Workers D1"], - "/router": ["worker-router", "index.js", "Workers Router"], - "/typescript": ["worker-typescript", "src/index.ts", "Workers TypeScript"], - "/websocket": ["worker-websocket", "index.js", "Workers WebSocket"], - "/example-wordle": [ - "worker-example-wordle", - "src/index.ts", - "Workers Wordle example", - ], - "/example-request-scheduler": [ - "worker-example-request-scheduler", - "src/index.ts", - "Workers Request Scheduler", - ], - "/websocket-durable-objects": [ - "worker-websocket-durable-objects", - "src/index.ts", - "Workers WebSocket Durable Objects", - ], - "/worktop": ["worker-worktop", "src/index.ts", "Workers Worktop"], - "/pages-functions-cors": [ - "pages-functions-cors", - "functions/api/_middleware.ts", - "Pages Functions CORS", - "dev", - ], - "/pages-plugin-static-forms": [ - "pages-plugin-static-forms", - "functions/_middleware.ts", - "Pages Plugin static forms", - "dev", - ], - "/pages-example-forum-app": [ - "pages-example-forum-app", - "functions/api/code.ts", - "Pages Example Forum app", - "dev", - ], - "/stream/stream-player": [ - "stream/playback/stream-player", - "src/index.html", - "Cloudflare Stream Player", - ], - "/stream/video-js": [ - "stream/playback/video-js", - "src/index.html", - "Cloudflare Stream + Video.js", - ], - "/stream/vidstack": [ - "stream/playback/vidstack", - "src/index.html", - "Cloudflare Stream + Vidstack", - ], - "/stream/hls-js": [ - "stream/playback/hls-js", - "src/index.html", - "Cloudflare Stream + hls.js", - ], - "/stream/dash-js": [ - "stream/playback/dash-js", - "src/index.html", - "Cloudflare Stream + dash.js", - ], - "/stream/shaka-player": [ - "stream/playback/shaka-player", - "src/index.js", - "Cloudflare Stream + Shaka Player", - ], - "/stream/direct-creator-uploads": [ - "stream/upload/direct-creator-uploads", - "src/index.html", - "Direct Creator Uploads to Cloudflare Stream", - ], - "/stream/direct-creator-uploads-tus": [ - "stream/upload/direct-creator-uploads-tus", - "src/index.html", - "Direct Creator Uploads to Cloudflare Stream, using TUS", - ], - "/stream/webrtc": [ - "stream/webrtc", - "src/index.html", - "Stream live video (using WHIP) and playback (using WHEP) over WebRTC with Cloudflare Stream", - ], - "/stream/webrtc-whip": [ - "stream/webrtc", - "src/index.html", - "Stream live video (using WHIP) over WebRTC with Cloudflare Stream", - ], - "/stream/webrtc-whep": [ - "stream/webrtc", - "src/index.html", - "Play live video (using WHEP) over WebRTC with Cloudflare Stream", - ], - "/stream/signed-urls-public-content": [ - "stream/auth/signed-urls-public-content", - "src/index.html", - "Example of using Cloudflare Stream Signed URLs with public content", - ], -}; - const worker: ExportedHandler = { fetch(request) { const { pathname } = new URL(request.url); - if (pathname === "/templates") { - return new Response(getListHTML(redirects), { - headers: { "content-type": "text/html" }, - }); - } - - const redirectUrl = getRedirectUrlForPathname(pathname); - if (redirectUrl) { - return Response.redirect(redirectUrl, 302); - } - if (pathname === "/python") { return Response.redirect( "https://workers.cloudflare.com/playground/python", @@ -162,143 +16,4 @@ const worker: ExportedHandler = { }, }; -function getRedirectUrlForPathname(pathname: string): string | undefined { - const [subdir, file, title, terminal] = redirects[pathname] || []; - if (subdir) { - const focus = encodeURIComponent(file); - const target = `https://stackblitz.com/fork/${source}/${subdir}?file=${focus}&title=${title}&terminal=${ - terminal || "start-stackblitz" - }`; - return target; - } -} - -function getListHTML(redirectsParam: Redirects) { - return /*html*/ ` - - - - - - - -

Cloudflare Workers Templates

-

Ready to use templates to start building applications on Cloudflare Workers.

- -

Want to contribute a template? Send a PR to the Wrangler repository.

- - -`; -} - export default worker; diff --git a/packages/workers.new/tests/__snapshots__/index.test.ts.snap b/packages/workers.new/tests/__snapshots__/index.test.ts.snap deleted file mode 100644 index bed98e47b930..000000000000 --- a/packages/workers.new/tests/__snapshots__/index.test.ts.snap +++ /dev/null @@ -1,273 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`worker > templates list 1`] = ` -" - - - - - - - -

Cloudflare Workers Templates

-

Ready to use templates to start building applications on Cloudflare Workers.

- -

Want to contribute a template? Send a PR to the Wrangler repository.

- - -" -`; diff --git a/packages/workers.new/tests/index.test.ts b/packages/workers.new/tests/index.test.ts index f8b7bc09786b..db67a67869f8 100644 --- a/packages/workers.new/tests/index.test.ts +++ b/packages/workers.new/tests/index.test.ts @@ -1,6 +1,5 @@ import { SELF } from "cloudflare:test"; import { describe, expect, it } from "vitest"; -import { redirects } from "../src/index"; describe("worker", () => { it("python workers", async () => { @@ -14,55 +13,4 @@ describe("worker", () => { '"https://workers.cloudflare.com/playground/python"' ); }); - - it("templates list", async () => { - const resp = await SELF.fetch(`https://workers.new/templates`, { - redirect: "manual", - }); - - expect(await resp.text()).toMatchSnapshot(); - }); - - it("static definitions", async () => { - const redirectMapping = new Map(); - for (const [path] of Object.entries(redirects)) { - const resp = await SELF.fetch(`https://workers.new${path}`, { - redirect: "manual", - }); - - const location = resp.headers.get("Location"); - - redirectMapping.set(path, location); - } - expect(redirectMapping).toMatchInlineSnapshot(` - Map { - "/pages-image-sharing" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/pages-image-sharing?file=src%2Findex.tsx&title=Image%20Sharing%20Website%20with%20Pages%20Functions&terminal=start-stackblitz", - "/stream/auth/stripe" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/auth/stripe?file=src%2Findex.html&title=Stream%20+%20Stripe%20Checkout&terminal=start-stackblitz", - "/worker-durable-objects" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-durable-objects?file=index.js&title=Workers%20Durable%20Objects%20counter&terminal=start-stackblitz", - "/d1" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-d1?file=src%2Findex.ts&title=Workers%20D1&terminal=start-stackblitz", - "/router" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-router?file=index.js&title=Workers%20Router&terminal=start-stackblitz", - "/typescript" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-typescript?file=src%2Findex.ts&title=Workers%20TypeScript&terminal=start-stackblitz", - "/websocket" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-websocket?file=index.js&title=Workers%20WebSocket&terminal=start-stackblitz", - "/example-wordle" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-example-wordle?file=src%2Findex.ts&title=Workers%20Wordle%20example&terminal=start-stackblitz", - "/example-request-scheduler" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-example-request-scheduler?file=src%2Findex.ts&title=Workers%20Request%20Scheduler&terminal=start-stackblitz", - "/websocket-durable-objects" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-websocket-durable-objects?file=src%2Findex.ts&title=Workers%20WebSocket%20Durable%20Objects&terminal=start-stackblitz", - "/worktop" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/worker-worktop?file=src%2Findex.ts&title=Workers%20Worktop&terminal=start-stackblitz", - "/pages-functions-cors" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/pages-functions-cors?file=functions%2Fapi%2F_middleware.ts&title=Pages%20Functions%20CORS&terminal=dev", - "/pages-plugin-static-forms" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/pages-plugin-static-forms?file=functions%2F_middleware.ts&title=Pages%20Plugin%20static%20forms&terminal=dev", - "/pages-example-forum-app" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/pages-example-forum-app?file=functions%2Fapi%2Fcode.ts&title=Pages%20Example%20Forum%20app&terminal=dev", - "/stream/stream-player" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/playback/stream-player?file=src%2Findex.html&title=Cloudflare%20Stream%20Player&terminal=start-stackblitz", - "/stream/video-js" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/playback/video-js?file=src%2Findex.html&title=Cloudflare%20Stream%20+%20Video.js&terminal=start-stackblitz", - "/stream/vidstack" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/playback/vidstack?file=src%2Findex.html&title=Cloudflare%20Stream%20+%20Vidstack&terminal=start-stackblitz", - "/stream/hls-js" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/playback/hls-js?file=src%2Findex.html&title=Cloudflare%20Stream%20+%20hls.js&terminal=start-stackblitz", - "/stream/dash-js" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/playback/dash-js?file=src%2Findex.html&title=Cloudflare%20Stream%20+%20dash.js&terminal=start-stackblitz", - "/stream/shaka-player" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/playback/shaka-player?file=src%2Findex.js&title=Cloudflare%20Stream%20+%20Shaka%20Player&terminal=start-stackblitz", - "/stream/direct-creator-uploads" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/upload/direct-creator-uploads?file=src%2Findex.html&title=Direct%20Creator%20Uploads%20to%20Cloudflare%20Stream&terminal=start-stackblitz", - "/stream/direct-creator-uploads-tus" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/upload/direct-creator-uploads-tus?file=src%2Findex.html&title=Direct%20Creator%20Uploads%20to%20Cloudflare%20Stream,%20using%20TUS&terminal=start-stackblitz", - "/stream/webrtc" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/webrtc?file=src%2Findex.html&title=Stream%20live%20video%20(using%20WHIP)%20and%20playback%20(using%20WHEP)%20over%20WebRTC%20with%20Cloudflare%20Stream&terminal=start-stackblitz", - "/stream/webrtc-whip" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/webrtc?file=src%2Findex.html&title=Stream%20live%20video%20(using%20WHIP)%20over%20WebRTC%20with%20Cloudflare%20Stream&terminal=start-stackblitz", - "/stream/webrtc-whep" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/webrtc?file=src%2Findex.html&title=Play%20live%20video%20(using%20WHEP)%20over%20WebRTC%20with%20Cloudflare%20Stream&terminal=start-stackblitz", - "/stream/signed-urls-public-content" => "https://stackblitz.com/fork/github/cloudflare/workers-sdk/tree/main/templates/stream/auth/signed-urls-public-content?file=src%2Findex.html&title=Example%20of%20using%20Cloudflare%20Stream%20Signed%20URLs%20with%20public%20content&terminal=start-stackblitz", - } - `); - }); }); diff --git a/packages/wrangler/templates/gitignore b/packages/wrangler/templates/gitignore deleted file mode 100644 index bc57480be671..000000000000 --- a/packages/wrangler/templates/gitignore +++ /dev/null @@ -1,170 +0,0 @@ -# Logs - -logs -_.log -npm-debug.log_ -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) - -report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json - -# Runtime data - -pids -_.pid -_.seed -\*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover - -lib-cov - -# Coverage directory used by tools like istanbul - -coverage -\*.lcov - -# nyc test coverage - -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) - -.grunt - -# Bower dependency directory (https://bower.io/) - -bower_components - -# node-waf configuration - -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) - -build/Release - -# Dependency directories - -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) - -web_modules/ - -# TypeScript cache - -\*.tsbuildinfo - -# Optional npm cache directory - -.npm - -# Optional eslint cache - -.eslintcache - -# Optional stylelint cache - -.stylelintcache - -# Microbundle cache - -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history - -.node_repl_history - -# Output of 'npm pack' - -\*.tgz - -# Yarn Integrity file - -.yarn-integrity - -# dotenv environment variable files - -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) - -.cache -.parcel-cache - -# Next.js build output - -.next -out - -# Nuxt.js build / generate output - -.nuxt -dist - -# Gatsby files - -.cache/ - -# Comment in the public line in if your project uses Gatsby and not Next.js - -# https://nextjs.org/blog/next-9-1#public-directory-support - -# public - -# vuepress build output - -.vuepress/dist - -# vuepress v2.x temp and cache directory - -.temp -.cache - -# Docusaurus cache and generated files - -.docusaurus - -# Serverless directories - -.serverless/ - -# FuseBox cache - -.fusebox/ - -# DynamoDB Local files - -.dynamodb/ - -# TernJS port file - -.tern-port - -# Stores VSCode versions used for testing VSCode extensions - -.vscode-test - -# yarn v2 - -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.\* - -.wrangler -.DS_Store