v7
Göç
::: warning Herhangi bir kırıcı değişiklikle karşılaşırsanız, bu sayfayı düzenleyerek katkıda bulunmaktan çekinmeyin. :::
- Depo artık tekil bir depo haline getirildi ve bazı bölümleri daha küçük paketlere ayrıldı.
- Bu hala
cjs
/esm
imports için derlenmiş bir hibrit modül olduğundan, TypeScriptv5.0.0
+ ile yeni değişikliklerin düzeltilmesi gerekiyor.
::: info
Bunun anlamı, TypeScript
sürümünüzü güncel tutmanız gerektiğidir, aksi takdirde bazı özelliklere erişim sağlayamayabilirsiniz.
:::
- Listr seçenekleri
disableColor
veforceColor
kaldırılmıştır çünkü beklenen gibi çalışmıyordu. Kullanıcıların colorrette içinFORCE_COLOR
veNO_COLOR
gibi temel ortam değişkenlerini kullanmaları teşvik edilmektedir. - Ortam değişkeni
LISTR_DISABLE_COLOR
, diğer kütüphanelerle tutarlılık sağlamak amacıyla temel kütüphaneninNO_COLOR
seçeneğini kullanmak için kaldırılmıştır.
::: tip Tavsiyemiz: Color kullanımını yönetmek için her zaman uygun ortam değişkenlerini ayarlayın. :::
- Task
options
özelliği, per-renderer görev seçenekleri için kullanılmakta olan artıkrendererOptions
vefallbackRendererOptions
ile değiştirilmiştir. Bu değişiklik, dairesel türlerin doğru şekilde enjekte edilmesini sağlamak ve aynı zamanda görev seçeneklerinin yedek renderere iletilmesini sağlamaktadır.
::: note Bu değişiklik, kullanıcıların belirli görev seçenekleriyle daha fazla esneklik kazanmasına olanak tanır. :::
Manager artık talep üzerine
@listr2/manager
aracılığıyla kurulabilen ayrı bir pakettir.task.prompt
, birden fazla adaptörü destekleyecek şekilde yeniden yapılandırılmıştır, bu mevcut davranışı bozacak ancak farklı prompt kütüphanelerini kullanma yeteneğini beraberinde getirecektir.Artık başlangıçta desteklenen
enquirer
için ek olarakinquirer
de desteklenmektedir. Prompt adaptörleri sırasıyla@listr2/prompt-adapter-enquirer
,@listr2/prompt-adapter-inquirer
paketlerinde bulunur.Eski biçim:
import { Listr } from 'listr2'
await new Listr([
{
task: async (ctx, task): Promise<void> => {
ctx.input = await task.prompt<boolean>({ type: 'Toggle', message: 'Do you love me?' })
}
}
]).run()Kolayca taşınabilir:
import { Listr } from 'listr2'
import { ListrEnquirerPromptAdapter } from '@listr2/prompt-adapter-enquirer'
await new Listr([
{
task: async (ctx, task): Promise<boolean> => {
ctx.input = await task.prompt(ListrEnquirerPromptAdapter).run<boolean>({ type: 'Toggle', message: 'Do you love me?' })
}
}
]).run()Çoklu yerlerde iptal etme veya birden fazla soru sorma gibi durumlarda kullanıyorsanız, adaptörü bir değişkene atayabilirsiniz.
import { Listr } from 'listr2'
import { ListrEnquirerPromptAdapter } from '@listr2/prompt-adapter-enquirer'
await new Listr([
{
task: async (ctx, task): Promise<boolean> => {
// önce adaptörü oluştur
const prompt = task.prompt(ListrEnquirerPromptAdapter)
ctx.input = await prompt.run<boolean>({ type: 'Toggle', message: 'Do you love me?' })
ctx.input = await prompt.run<boolean>({ type: 'Toggle', message: 'And another one?' })
}
}
]).run()Herhangi bir
enquirer
ile ilgili dışa aktarılan türlerEnquirer
ile ön eklenmiştir, örneğinPromptTypes
EnquirerPromptTypes
oldu.Listr seçeneği
injectWrapper
kaldırılmıştır. Bu yalnızca prompt sistemi tarafından kullanılıyordu. Artık birenquirer
örneğini adaptör aracılığıyla doğrudan enjekte edebilirsiniz.
::: danger
Önemli Uyarı: injectWrapper
seçeneğinin kaldırılması, mevcut projelerinizde uyumsuzluk sorunlarına neden olabilir. Lütfen kodunuzu gözden geçirin ve gerekli güncellemeleri yapın.
:::
- Yeni bir
ListrTaskState
olanPROMPT_FAILED
, bir prompt başarısız olduğunda yayılacaktır.