@@ -4,32 +4,44 @@ import generateProject from './generators/projectGenerator.js';
44import { cleanProject } from '../src/scripts/cleanProject.js' ;
55import { copyTemplateFiles } from './utils/copyTemplateFiles.js' ;
66
7+
8+ const args = process . argv . slice ( 2 ) ;
9+ const defaultProjectName = args [ 0 ] ;
10+
711export default async function main ( ) {
812 const { language } = await languagePrompt ( ) ;
913
10- const { projectName } = await prompts ( {
14+
15+ const response = await prompts ( {
1116 type : 'text' ,
1217 name : 'projectName' ,
1318 message : 'Enter your project folder name' ,
14- initial : 'my-nexter-app' ,
15- validate : name => ( name . trim ( ) === '' ? 'Project name cannot be empty' : true )
19+ initial : defaultProjectName || 'my-nexter-app' ,
20+ validate : name => ( name . trim ( ) === '' ? 'Project name cannot be empty' : true ) ,
21+
22+ onState : state => {
23+ if ( defaultProjectName ) {
24+ state . aborted = true ;
25+ state . value = defaultProjectName ;
26+ }
27+ }
1628 } ) ;
1729
18- console . log ( `Generating Next.js project '${ projectName } ' with language: ${ language } ` ) ;
1930
20- try {
21- await generateProject ( language , projectName ) ;
31+ const finalProjectName = defaultProjectName || response . projectName ;
2232
23- await cleanProject ( projectName , language ) ;
24-
25- await copyTemplateFiles ( projectName , language ) ;
33+ console . log ( `Generating Next.js project '${ finalProjectName } ' with language: ${ language } ` ) ;
34+
35+ try {
36+ await generateProject ( language , finalProjectName ) ;
2637
38+ await cleanProject ( finalProjectName , language ) ;
2739
40+ await copyTemplateFiles ( finalProjectName , language ) ;
2841
2942 console . log ( '✅ Cleanup and structure completed.' ) ;
3043 console . log ( '🎉 Project created successfully!' ) ;
3144 } catch ( err ) {
3245 console . error ( '❌ Error during project generation:' , err ) ;
3346 }
3447}
35-
0 commit comments