Comment on page
Bunjs ve Typescript ile CLI Uygulamasi gelistirmek
bunjs, typescript, cli, programming

Commander.js ve Inquirer.js, CLI uygulamaları geliştirirken kullanılan iki farklı kütüphanedir ve farklı amaçlara hizmet ederler:
- Eğer amacınız komut satırı argümanlarını işlemek ve basit komutlar oluşturmaksa, Commander.js daha uygun bir seçim olacaktır.
- Ancak kullanıcıdan interaktif geri bildirim almanız gerekiyorsa, Inquirer.js kullanmalısınız.
Komut satırı argümanlarını işlemek ve CLI uygulamaları için bir arayüz sağlamak için kullanılır. Option parsing, komutların tanımlanması ve yardım sayfalarının otomatik üretimi gibi özelliklere sahiptir.
bun install commander
# npm install commander
import { program } from 'commander';
program
.option('-d, --debug', 'output extra debugging')
.option('-s, --small', 'small pizza size')
.option('-p, --pizza-type <type>', 'flavour of pizza');
program.parse(process.argv);
const options = program.opts();
if (options.debug) console.log(options);
console.log('pizza details:');
if (options.small) console.log('- small pizza size');
if (options.pizzaType) console.log(`- ${options.pizzaType}`);
Kullanıcıdan interaktif kullanıcı girdisi almak için kullanılır. Prompts, checkboxes, input fields gibi birçok farklı kullanıcı girdi tipini destekler. Kullanıcılarla interaktif CLI uygulamaları yapmak için tercih edilir.
bun install inquirer
# npm install commander
import inquirer from 'inquirer';
const questions = [
{
type: 'confirm',
name: 'toBeDelivered',
message: 'Is this for delivery?',
default: false,
},
{
type: 'input',
name: 'phone',
message: "What's your phone number?",
validate(value) {
const pass = value.match(
/^([01]{1})?[\\-\\.\\s]?(\\([0-9]{3}\\))?[\\-\\.\\s]?([0-9]{3})[\\-\\.\\s]?([0-9]{4})$/
);
if (pass) {
return true;
}
return 'Please enter a valid phone number';
},
}
];
inquirer.prompt(questions).then((answers) => {
console.log('\\nOrder receipt:');
console.log(JSON.stringify(answers, null, ' '));
});