Links
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.

Commander.js:

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}`);

Inquirer.js

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, ' '));
});
2023 © Yunus Emre AK