Ana içeriğe geç

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, TypeScript v5.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 ve forceColor kaldırılmıştır çünkü beklenen gibi çalışmıyordu. Kullanıcıların colorrette için FORCE_COLOR ve NO_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üphanenin NO_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ık rendererOptions ve fallbackRendererOptions 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 olarak inquirer 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ürler Enquirer ile ön eklenmiştir, örneğin PromptTypes EnquirerPromptTypes oldu.

  • Listr seçeneği injectWrapper kaldırılmıştır. Bu yalnızca prompt sistemi tarafından kullanılıyordu. Artık bir enquirer ö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 olan PROMPT_FAILED, bir prompt başarısız olduğunda yayılacaktır.