Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-nexter",
"version": "1.0.0",
"version": "1.0.1",
"description": "A modern, extensible CLI to scaffold Next.js applications with a clean architecture and optional Tailwind CSS integration.",
"type": "module",
"bin": {
Expand Down
32 changes: 22 additions & 10 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,44 @@ import generateProject from './generators/projectGenerator.js';
import { cleanProject } from '../src/scripts/cleanProject.js';
import { copyTemplateFiles } from './utils/copyTemplateFiles.js';


const args = process.argv.slice(2);
const defaultProjectName = args[0];

export default async function main() {
const { language } = await languagePrompt();

const { projectName } = await prompts({

const response = await prompts({
type: 'text',
name: 'projectName',
message: 'Enter your project folder name',
initial: 'my-nexter-app',
validate: name => (name.trim() === '' ? 'Project name cannot be empty' : true)
initial: defaultProjectName || 'my-nexter-app',
validate: name => (name.trim() === '' ? 'Project name cannot be empty' : true),

onState: state => {
if (defaultProjectName) {
state.aborted = true;
state.value = defaultProjectName;
}
}
});

console.log(`Generating Next.js project '${projectName}' with language: ${language}`);

try {
await generateProject(language, projectName);
const finalProjectName = defaultProjectName || response.projectName;

await cleanProject(projectName, language);

await copyTemplateFiles(projectName, language);
console.log(`Generating Next.js project '${finalProjectName}' with language: ${language}`);

try {
await generateProject(language, finalProjectName);

await cleanProject(finalProjectName, language);

await copyTemplateFiles(finalProjectName, language);

console.log('✅ Cleanup and structure completed.');
console.log('🎉 Project created successfully!');
} catch (err) {
console.error('❌ Error during project generation:', err);
}
}

Loading