ceskacan.
EN

Ürün akışı / AppAnvil

Bir seçimi indirilebilir betiğe dönüştürmek

Bir kurulum aracındaki küçük indirme fonksiyonu, verinin nasıl bir ürüne dönüştüğünü görünür kılıyor.

2 dakika okuma

Başlangıç noktası: seçim ve hedef

AppAnvil’de uygulama kataloğu ile kullanıcının seçimi ayrı kavramlar. Katalog, uygulamaların platform kimliklerini taşıyor. Seçim ise bu kataloğun hangi bölümünün çıktıya dönüşeceğini belirliyor. Hedef platform değiştiğinde kullanılabilir paketler ve üretilecek komutlar da değişiyor. Bu ayrım, arayüzdeki bir işaretleme hareketinin doğrudan gelişigüzel komut metnine dönüşmesini önlüyor.

Dosyanın oluştuğu yer

downloadScript(), generateScript() sonucunu bir Blob nesnesine dönüştürüyor. Tarayıcı bu nesne için geçici bir adres oluşturuyor. İndirme bağlantısının dosya adı, seçilen platformun uzantısıyla kuruluyor. Böylece kullanıcı, çıktıyı bir dosya olarak alabiliyor; sunucuda dosya hazırlayan ayrı bir uç noktaya ihtiyaç duyulmuyor.

Bir kaynağın yaşam döngüsü

Geçici nesne adresi oluşturmak işin yalnızca ilk yarısı. İndirme başlatıldıktan sonra bağlantı DOM’dan kaldırılıyor ve URL.revokeObjectURL() çağrılıyor. Kaynağı oluşturma ve serbest bırakma adımlarının aynı fonksiyonda okunabilmesi, bu küçük akışın anlaşılmasını kolaylaştırıyor. Bu yaşam döngüsü, peş peşe indirme isteklerinde geçici adreslerin yönetimini açık tutar.

Sınırları açık tutmak

İndirilen betik, hedef makinedeki paket yöneticisine ve katalogdaki paket eşleştirmelerine bağlı. Kaynakta Homebrew girdilerine topluca --cask uygulanıyor; her paket için doğru eşleştirme ayrıca kontrol edilmeli. Ürünü anlatırken dosya üretimi ile başarılı kurulumun farklı aşamalar olduğunu açık tutmak gerekiyor. Buradaki somut sonuç, kullanıcı seçiminin incelenebilir bir kurulum dosyasına dönüşmesi.

İlgili kaynak örneğini aç ↗