Skip to content

Commit 6c57d17

Browse files
C3: Remove the next-on-pages (Next.js on the Pages platform) option since the package has been deprecated
1 parent bde8ef2 commit 6c57d17

File tree

18 files changed

+75
-601
lines changed

18 files changed

+75
-601
lines changed

.changeset/orange-ideas-tie.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"create-cloudflare": patch
3+
---
4+
5+
Remove the next-on-pages (Next.js on the Pages platform) option since the package has been deprecated

packages/create-cloudflare/e2e/tests/frameworks/test-config.ts

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -372,27 +372,7 @@ function getFrameworkTestConfig(pm: string): NamedFrameworkTestConfig[] {
372372
flags: ["--typescript", "--no-install", "--no-git-init"],
373373
},
374374
{
375-
name: "next:pages",
376-
argv: ["--platform", "pages"],
377-
timeout: LONG_TIMEOUT,
378-
testCommitMessage: true,
379-
verifyDeploy: {
380-
route: "/",
381-
expectedText: "Create Next App",
382-
},
383-
// see https://github.com/cloudflare/next-on-pages/blob/main/packages/next-on-pages/docs/supported.md#operating-systems
384-
unsupportedOSs: ["win32"],
385-
verifyPreview: {
386-
previewArgs: ["--inspector-port=0"],
387-
route: "/",
388-
expectedText: "Create Next App",
389-
},
390-
nodeCompat: true,
391-
flags: ["--yes", "--no-install", "--import-alias", "@/*"],
392-
},
393-
{
394-
name: "next:workers",
395-
argv: ["--platform", "workers"],
375+
name: "next",
396376
timeout: LONG_TIMEOUT,
397377
testCommitMessage: true,
398378
flags: ["--yes", "--import-alias", "@/*"],
Lines changed: 69 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,71 @@
1-
import pages from "./pages/c3";
2-
import workers from "./workers/c3";
3-
import type { MultiPlatformTemplateConfig } from "../../src/templates";
1+
import { brandColor, dim } from "@cloudflare/cli/colors";
2+
import { spinner } from "@cloudflare/cli/interactive";
3+
import { runFrameworkGenerator } from "frameworks/index";
4+
import { readFile, usesTypescript, writeFile } from "helpers/files";
5+
import { installPackages } from "helpers/packages";
6+
import type { TemplateConfig } from "../../src/templates";
7+
import type { C3Context } from "types";
48

5-
const config: MultiPlatformTemplateConfig = {
6-
displayName: "Next.js",
7-
platformVariants: { pages, workers },
9+
const generate = async (ctx: C3Context) => {
10+
await runFrameworkGenerator(ctx, [ctx.project.name]);
11+
};
12+
13+
const configure = async (ctx: C3Context) => {
14+
await installPackages(["@opennextjs/cloudflare@^1.3.0"], {
15+
startText: "Adding the Cloudflare adapter",
16+
doneText: `${brandColor(`installed`)} @opennextjs/cloudflare)}`,
17+
});
18+
19+
const usesTs = usesTypescript(ctx);
20+
21+
updateNextConfig(usesTs);
22+
};
23+
24+
const updateNextConfig = (usesTs: boolean) => {
25+
const s = spinner();
26+
27+
const configFile = `next.config.${usesTs ? "ts" : "mjs"}`;
28+
s.start(`Updating \`${configFile}\``);
29+
30+
const configContent = readFile(configFile);
31+
32+
const updatedConfigFile =
33+
configContent +
34+
`
35+
// added by create cloudflare to enable calling \`getCloudflareContext()\` in \`next dev\`
36+
import { initOpenNextCloudflareForDev } from '@opennextjs/cloudflare';
37+
initOpenNextCloudflareForDev();
38+
`.replace(/\n\t*/g, "\n");
39+
40+
writeFile(configFile, updatedConfigFile);
41+
42+
s.stop(`${brandColor(`updated`)} ${dim(`\`${configFile}\``)}`);
843
};
9-
export default config;
44+
45+
const envInterfaceName = "CloudflareEnv";
46+
const typesPath = "./cloudflare-env.d.ts";
47+
export default {
48+
configVersion: 1,
49+
id: "next",
50+
frameworkCli: "create-next-app",
51+
platform: "workers",
52+
displayName: "Next.js",
53+
path: "templates/next/workers",
54+
copyFiles: {
55+
path: "./templates",
56+
},
57+
generate,
58+
configure,
59+
transformPackageJson: async () => ({
60+
scripts: {
61+
deploy: `opennextjs-cloudflare build && opennextjs-cloudflare deploy`,
62+
preview: `opennextjs-cloudflare build && opennextjs-cloudflare preview`,
63+
"cf-typegen": `wrangler types --env-interface ${envInterfaceName} ${typesPath}`,
64+
},
65+
}),
66+
devScript: "dev",
67+
previewScript: "preview",
68+
deployScript: "deploy",
69+
typesPath,
70+
envInterfaceName,
71+
} as TemplateConfig;

packages/create-cloudflare/templates/next/pages/README.md

Lines changed: 0 additions & 67 deletions
This file was deleted.

packages/create-cloudflare/templates/next/pages/app/js/app/api/hello/route.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

packages/create-cloudflare/templates/next/pages/app/js/app/not-found.js

Lines changed: 0 additions & 58 deletions
This file was deleted.

packages/create-cloudflare/templates/next/pages/app/ts/app/api/hello/route.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

packages/create-cloudflare/templates/next/pages/app/ts/app/not-found.tsx

Lines changed: 0 additions & 58 deletions
This file was deleted.

0 commit comments

Comments
 (0)