@@ -28,7 +28,6 @@ interface GenerateConfig {
2828export const generate = async ( config ?: GenerateConfig ) : Promise < void > => {
2929 const fs = await import ( "node:fs/promises" ) ;
3030 const { dirname, toFileUrl } = await import ( "@std/path" ) ;
31- const { tsToJs } = await import ( "./server.ts" ) ;
3231
3332 const { outFolder = "generated" , pregenerateOnly = false } = config || { } ;
3433 const pregenerateAll = ! pregenerateOnly ;
@@ -42,10 +41,17 @@ export const generate = async (config?: GenerateConfig): Promise<void> => {
4241 for ( const file of await generatePagesForRoute ( route , module ) ) {
4342 if ( file ) {
4443 const outFilePath = outFolder + file . outFilePath ;
45- await Deno . mkdir ( dirname ( outFilePath ) , { recursive : true } ) ;
44+ await fs . mkdir ( dirname ( outFilePath ) , { recursive : true } ) ;
4645 const { body } = file . response ;
4746 if ( body ) {
48- Deno . writeFile ( outFilePath , body ) ;
47+ if ( typeof Deno === "object" ) {
48+ Deno . writeFile ( outFilePath , body ) ;
49+ } else {
50+ const { createWriteStream } = await import ( "node:fs" ) ;
51+ const { Readable } = await import ( 'node:stream' ) ;
52+ // deno-lint-ignore no-explicit-any
53+ Readable . fromWeb ( body as any ) . pipe ( createWriteStream ( outFilePath ) ) ;
54+ }
4955 }
5056 }
5157 }
@@ -57,25 +63,33 @@ export const generate = async (config?: GenerateConfig): Promise<void> => {
5763
5864 for ( const filePath of await getStaticFilePaths ( ) ) {
5965 if ( filePath . endsWith ( ".client.ts" ) ) {
60- const text = await Deno . readTextFile ( "routes" + filePath ) ;
61- Deno . writeTextFile ( outFolder + filePath . slice ( 0 , - 3 ) + ".js" , await tsToJs ( text ) ) ;
66+ const { tsToJs } = await import ( "./server.ts" ) ;
67+ const text = await fs . readFile ( "routes" + filePath , { encoding : "utf8" } ) ;
68+ fs . writeFile ( outFolder + filePath . slice ( 0 , - 3 ) + ".js" , await tsToJs ( text ) ) ;
6269 } else if ( pregenerateAll ) {
6370 const outPath = outFolder + filePath ;
64- await Deno . mkdir ( dirname ( outPath ) , { recursive : true } ) ;
65- await Deno . copyFile ( "routes" + filePath , outPath ) ;
71+ await fs . mkdir ( dirname ( outPath ) , { recursive : true } ) ;
72+ await fs . copyFile ( "routes" + filePath , outPath ) ;
6673 }
6774 }
6875
6976 console . info ( `Generated static site and wrote to ${ outFolder } / folder.` ) ;
7077} ;
7178
7279if ( typeof document === "undefined" && import . meta. main ) {
73- const { parseArgs } = await import ( "@std/cli/parse-args" ) ;
74- const flags = parseArgs ( Deno . args , {
75- boolean : [ "pregenerateOnly" ] ,
76- string : [ "outFolder" ] ,
80+ const { parseArgs } = await import ( "node:util" ) ;
81+ const flags = parseArgs ( {
82+ args : process . argv . slice ( 2 ) ,
83+ options : {
84+ outFolder : {
85+ type : "string" ,
86+ } ,
87+ pregenerateOnly : {
88+ type : "boolean" ,
89+ } ,
90+ }
7791 } ) ;
78- generate ( flags ) ;
92+ generate ( flags . values ) ;
7993}
8094
8195/**
0 commit comments