UNPKG

create-marp-slides

Version:

CLI tool for scaffolding Marp presentation projects with GitHub Pages deployment

37 lines (30 loc) 1.03 kB
import inquirer from 'inquirer'; import fs from 'fs'; import path from 'path'; export async function promptForProjectName() { const answers = await inquirer.prompt([ { type: 'input', name: 'projectName', message: 'What is your project name?', default: 'my-slides', validate: (input) => { if (!input.trim()) { return 'Project name cannot be empty'; } // Check if directory already exists const targetDir = path.join(process.cwd(), input.trim()); if (fs.existsSync(targetDir)) { return `Directory "${input.trim()}" already exists. Please choose a different name.`; } // Check for valid directory name const validNamePattern = /^[a-zA-Z0-9-_]+$/; if (!validNamePattern.test(input.trim())) { return 'Project name can only contain letters, numbers, hyphens, and underscores'; } return true; } } ]); return answers.projectName.trim(); }