11import { brandColor , dim } from "@cloudflare/cli/colors" ;
2+ import { spinner } from "@cloudflare/cli/interactive" ;
23import { runFrameworkGenerator } from "frameworks/index" ;
4+ import { readFile , writeFile } from "helpers/files" ;
35import { installPackages } from "helpers/packages" ;
46import type { TemplateConfig } from "../../src/templates" ;
57import type { C3Context } from "types" ;
@@ -19,14 +21,37 @@ const generate = async (ctx: C3Context) => {
1921
2022const configure = async ( ) => {
2123 const packages = [
22- "@opennextjs/cloudflare@0.3 .x" ,
24+ "@opennextjs/cloudflare@0.4 .x" ,
2325 "@cloudflare/workers-types" ,
2426 ] ;
2527 await installPackages ( packages , {
2628 dev : true ,
2729 startText : "Adding the Cloudflare adapter" ,
2830 doneText : `${ brandColor ( `installed` ) } ${ dim ( packages . join ( ", " ) ) } ` ,
2931 } ) ;
32+
33+ updateNextConfig ( ) ;
34+ } ;
35+
36+ const updateNextConfig = ( ) => {
37+ const s = spinner ( ) ;
38+
39+ const configFile = "next.config.mjs" ;
40+ s . start ( `Updating \`${ configFile } \`` ) ;
41+
42+ const configContent = readFile ( configFile ) ;
43+
44+ const updatedConfigFile =
45+ configContent +
46+ `
47+ // added by create cloudflare to enable calling \`getCloudflareContext()\` in \`next dev\`
48+ import { initOpenNextCloudflareForDev } from '@opennextjs/cloudflare';
49+ initOpenNextCloudflareForDev();
50+ ` . replace ( / \n \t * / g, "\n" ) ;
51+
52+ writeFile ( configFile , updatedConfigFile ) ;
53+
54+ s . stop ( `${ brandColor ( `updated` ) } ${ dim ( `\`${ configFile } \`` ) } ` ) ;
3055} ;
3156
3257export default {
0 commit comments