@@ -75,13 +75,18 @@ async function printVersion() {
7575/** Determine which command the user requested */
7676function resolveCommand ( flags : Arguments ) : CLICommand {
7777 const cmd = flags . _ [ 2 ] as string ;
78- if ( cmd === 'add' ) return 'add' ;
79- if ( cmd === 'sync' ) return 'sync' ;
80- if ( cmd === 'telemetry' ) return 'telemetry' ;
8178 if ( flags . version ) return 'version' ;
82- else if ( flags . help ) return 'help' ;
8379
84- const supportedCommands = new Set ( [ 'dev' , 'build' , 'preview' , 'check' , 'docs' ] ) ;
80+ const supportedCommands = new Set ( [
81+ 'add' ,
82+ 'sync' ,
83+ 'telemetry' ,
84+ 'dev' ,
85+ 'build' ,
86+ 'preview' ,
87+ 'check' ,
88+ 'docs' ,
89+ ] ) ;
8590 if ( supportedCommands . has ( cmd ) ) {
8691 return cmd as CLICommand ;
8792 }
@@ -144,6 +149,16 @@ async function runCommand(cmd: string, flags: yargs.Arguments) {
144149 }
145150 case 'docs' : {
146151 telemetry . record ( event . eventCliSession ( cmd ) ) ;
152+ if ( flags . help || flags . h ) {
153+ printHelp ( {
154+ commandName : 'astro docs' ,
155+ tables : {
156+ Flags : [ [ '--help (-h)' , 'See all available flags.' ] ] ,
157+ } ,
158+ description : `Launches the Astro Docs website directly from the terminal.` ,
159+ } ) ;
160+ return ;
161+ }
147162 return await openInBrowser ( 'https://docs.astro.build/' ) ;
148163 }
149164 case 'telemetry' : {
@@ -203,26 +218,29 @@ async function runCommand(cmd: string, flags: yargs.Arguments) {
203218 case 'build' : {
204219 const { default : build } = await import ( '../core/build/index.js' ) ;
205220
206- return await build ( settings , { ... flags , logging, telemetry, teardownCompiler : true } ) ;
221+ return await build ( settings , { flags, logging, telemetry, teardownCompiler : true } ) ;
207222 }
208223
209224 case 'check' : {
210- const ret = await check ( settings , { logging } ) ;
225+ const ret = await check ( settings , { logging, flags } ) ;
211226 return process . exit ( ret ) ;
212227 }
213228
214229 case 'sync' : {
215230 const { syncCli } = await import ( '../core/sync/index.js' ) ;
216231
217- const ret = await syncCli ( settings , { logging, fs } ) ;
232+ const ret = await syncCli ( settings , { logging, fs, flags } ) ;
218233 return process . exit ( ret ) ;
219234 }
220235
221236 case 'preview' : {
222237 const { default : preview } = await import ( '../core/preview/index.js' ) ;
223238
224- const server = await preview ( settings , { logging, telemetry } ) ;
225- return await server . closed ( ) ; // keep alive until the server is closed
239+ const server = await preview ( settings , { logging, telemetry, flags } ) ;
240+ if ( server ) {
241+ return await server . closed ( ) ; // keep alive until the server is closed
242+ }
243+ return ;
226244 }
227245 }
228246
0 commit comments