Ana içeriğe geç

Özel Promptlar

Enquirer 2.0 ile özel istekler yaratmak her zamankinden daha kolay.

Özel isteği nasıl oluşturabilirim?

Özel istekler, ya:

  • Enquirer'ın Prompt sınıfını genişleterek
  • Yerleşik isteklerden birini kullanarak
  • ya da düşük seviyeli tiplerden birini kullanarak oluşturulur.
ipucu

Herhangi bir özel isteği oluştururken, mevcut seçeneklerden yararlanarak başlayabilirsiniz.

const { Prompt } = require('enquirer');

class HaiKarate extends Prompt {
constructor(options = {}) {
super(options);
this.value = options.initial || 0;
this.cursorHide();
}
up() {
this.value++;
this.render();
}
down() {
this.value--;
this.render();
}
render() {
this.clear(); // terminalden daha önce render edilmiş isteği temizle
this.write(`${this.state.message}: ${this.value}`);
}
}

// Özel istek sınıfınızın bir örneğini oluşturarak isteği kullanın.
const prompt = new HaiKarate({
message: 'Kaç sprey istiyorsunuz?',
initial: 10
});

prompt.run()
.then(answer => console.log('Spreyler:', answer))
.catch(console.error);

İsteğinizi tip ile belirlemek istiyorsanız ve diğer isteklerle birlikte kullanılabilmesi için, önce bir Enquirer örneği oluşturmanız gerekir.

const Enquirer = require('enquirer');
const enquirer = new Enquirer();

Sonra özel isteğinizi eklemek için .register() yöntemini kullanın.

enquirer.register('haikarate', HaiKarate);

Artık "sorular" tanımlarken aşağıdakileri yapabilirsiniz.

const spritzer = require('cologne-drone');
const answers = await enquirer.prompt([
{
type: 'haikarate',
name: 'cologne',
message: 'Kaç sprey gerekiyor?',
initial: 10,
async onSubmit(name, value) {
await spritzer.activate(value); //<= drone'u etkinleştir
return value;
}
}
]);
bilgi

Bu işlem sırasında, onSubmit fonksiyonuna dikkat edin; kullanıcıdan alınan değerleri çeşitli işlevlerde kullanabilirsiniz.

tehlike

Unutmayın ki, özel isteği kaydetmeden önce onu tanımlamak için gerekli tüm yöntemleri belirlemiş olmalısınız.