npm paketlerini kullanma
Uygulamanızda herhangi bir npm paketini yükleyip kullanabilirsiniz. Hem mantık işlevleri hem de ön uç bileşenleri, tüm bağımlılıkları çıktıya satır içi olarak ekleyen esbuild ile paketlenir — çalışma zamanındanode_modules gerekmez.
Bir paketi yükleme
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
Paketleme nasıl çalışır
Derleme adımı, her mantık işlevi ve her ön uç bileşeni için tek bir bağımsız dosya üretmek üzere esbuild kullanır. Tüm içe aktarılan paketler pakete satır içi eklenir. Mantık işlevleri, Node.js ortamında çalışır. Node yerleşik modülleri (fs, path, crypto, http vb.) kullanılabilir ve kurulmaları gerekmez.
Ön uç bileşenleri, bir Web Worker içinde çalışır. Node’un yerleşik modülleri kullanılamaz — yalnızca tarayıcı ortamında çalışan tarayıcı API’leri ve npm paketleri kullanılabilir.
Her iki ortamda da twenty-client-sdk/core ve twenty-client-sdk/metadata önceden sağlanmış modüller olarak mevcuttur — bunlar paketlenmez, ancak çalışma zamanında sunucu tarafından çözülür.
Kurulum
İskelet aracıyla oluşturulan uygulama zaten Vitest’i içerir. Manuel kurulum yaparsanız, bağımlılıkları yükleyin:vitest.config.ts oluşturun:
vitest.config.ts
src/__tests__/setup-test.ts
Programatik SDK API’leri
twenty-sdk/cli alt yolu, test kodundan doğrudan çağırabileceğiniz fonksiyonları dışa aktarır:
| Fonksiyon | Açıklama |
|---|---|
appBuild | Uygulamayı derleyin ve isteğe bağlı olarak bir tarball paketleyin |
appDeploy | Bir tarball’ı sunucuya yükleyin |
appInstall | Uygulamayı etkin çalışma alanına yükleyin |
appUninstall | Uygulamayı etkin çalışma alanından kaldırın |
success: boolean ile birlikte data veya error içeren bir sonuç nesnesi döndürür.
Bir entegrasyon testi yazma
İşte uygulamayı derleyen, dağıtan ve yükleyen; ardından çalışma alanında göründüğünü doğrulayan tam bir örnek:src/__tests__/app-install.integration-test.ts
Testleri çalıştırma
Yerel Twenty sunucunuzun çalıştığından emin olun, ardından:Tip denetimi
Ayrıca testleri çalıştırmadan uygulamanızda tip denetimi çalıştırabilirsiniz:tsc --noEmit komutunu çalıştırır ve tüm tip hatalarını raporlar.
GitHub Actions ile CI
İskelet oluşturucu,.github/workflows/ci.yml konumunda kullanıma hazır bir GitHub Actions iş akışı üretir. Entegrasyon testlerinizi main dalına yapılan her itmede ve çekme isteklerinde otomatik olarak çalıştırır.
İş akışı:
- Kodunuzu çalışma alanına alır
twentyhq/twenty/.github/actions/spawn-twenty-docker-imageeylemini kullanarak geçici bir Twenty sunucusu başlatıryarn install --immutableile bağımlılıkları kurar- Eylem çıktılarından enjekte edilen
TWENTY_API_URLveTWENTY_API_KEYileyarn testçalıştırır
.github/workflows/ci.yml
spawn-twenty-docker-image eylemi, koşucu içinde doğrudan geçici bir Twenty sunucusu başlatır ve bağlantı ayrıntılarını çıktı olarak verir. GITHUB_TOKEN gizli değişkeni GitHub tarafından otomatik olarak sağlanır.
latest yerine belirli bir Twenty sürümünü sabitlemek için iş akışının başındaki TWENTY_VERSION ortam değişkenini değiştirin.