Skip to content

Commit a8f7fe4

Browse files
committed
feat: add CLI entry point
1 parent b5628ca commit a8f7fe4

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

src/cli.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import * as clack from '@clack/prompts';
2+
import { join } from 'path';
3+
import { promptAppExtensions } from './prompts/appExtensions.js';
4+
import { promptDatabase } from './prompts/database.js';
5+
import { promptProjectName } from './prompts/projectName.js';
6+
import { promptWebhooks } from './prompts/webhooks.js';
7+
import { nodeGenerator } from './generators/node/index.js';
8+
9+
async function main(): Promise<void> {
10+
clack.intro('create-pipedrive-app');
11+
12+
const projectName = await promptProjectName(process.argv[2]);
13+
const database = await promptDatabase();
14+
const appExtensions = await promptAppExtensions();
15+
const webhooks = await promptWebhooks();
16+
17+
const outputDir = join(process.cwd(), projectName);
18+
19+
try {
20+
await nodeGenerator.generate(outputDir, { projectName, database, appExtensions, webhooks });
21+
} catch (error) {
22+
clack.log.error(
23+
`Generation failed: ${error instanceof Error ? error.message : String(error)}`,
24+
);
25+
process.exit(1);
26+
}
27+
28+
clack.outro(`✓ Created ${projectName}`);
29+
30+
const needsDocker = database === 'postgres' || database === 'mysql';
31+
console.log('\nNext steps:');
32+
console.log(` cd ${projectName}`);
33+
console.log(' cp .env.example .env');
34+
if (needsDocker) console.log(' docker-compose up -d');
35+
console.log(' npm install');
36+
console.log(' npm run dev');
37+
}
38+
39+
main();

0 commit comments

Comments
 (0)