feat: refactoring project

This commit is contained in:
Carlos
2024-11-23 14:56:07 -05:00
parent f0c2a50c18
commit 1c6db5818d
2351 changed files with 39323 additions and 60326 deletions

27
bin/cli.js Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env node
const program = require('commander');
const { initProject } = require('../src/setup/init');
const { askProjectDetails } = require('../src/utils/prompts');
const { overWriteFolder } = require('../src/utils/overWriteFolder');
program
.version('1.0.0')
.description('React Crafter CLI')
.arguments('<project-directory>')
.option('--typescript', 'Use TypeScript template')
.action(async (projectDirectory, options) => {
// Use the overwrite function to manage the project directory
const shouldProceed = await overWriteFolder(projectDirectory);
console.log('shouldProceed', shouldProceed);
if (!shouldProceed) {
console.error('❌ Project initialization aborted.');
process.exit(1);
}
// Proceed with project setup
const userInput = await askProjectDetails();
initProject(projectDirectory, userInput, options);
})
.parse(process.argv);

13
bin/cli.test.js Normal file
View File

@@ -0,0 +1,13 @@
const { execSync } = require('child_process');
describe('React Crafter CLI', () => {
test('CLI runs and shows version', () => {
const output = execSync('node bin/cli.js --version').toString();
expect(output.trim()).toMatch(/\\d+\\.\\d+\\.\\d+/); // Matches a version format
});
test('CLI handles missing arguments', () => {
const output = execSync('node bin/cli.js').toString();
expect(output).toContain('React Crafter CLI');
});
});