Skip to main content

Genel varlıklar (public/ klasörü)

Uygulamanızın kökündeki public/ klasörü, statik dosyaları barındırır — görseller, simgeler, yazı tipleri veya uygulamanızın çalışma zamanında ihtiyaç duyduğu diğer varlıklar. Bu dosyalar derlemelere otomatik olarak dahil edilir, geliştirme modunda senkronize edilir ve sunucuya yüklenir. public/ içine yerleştirilen dosyalar şunlardır:
  • Herkese açık olarak erişilebilir — sunucuya senkronize edildikten sonra varlıklar genel bir URL’den sunulur. Onlara erişmek için kimlik doğrulama gerekmez.
  • Ön uç bileşenlerinde kullanılabilir — React bileşenlerinizin içinde görseller, simgeler veya herhangi bir medyayı göstermek için varlık URL’lerini kullanın.
  • Mantık işlevlerinde kullanılabilir — e-postalarda, API yanıtlarında veya herhangi bir sunucu tarafı mantıkta varlık URL’lerine referans verin.
  • Pazar yeri üst verileri için kullanılırdefineApplication() içindeki logoUrl ve screenshots alanları bu klasördeki dosyalara referans verir (örn. public/logo.png). Bunlar, uygulamanız yayımlandığında pazar yerinde görüntülenir.
  • Geliştirme modunda otomatik senkronize edilirpublic/ içinde bir dosya eklediğinizde, güncellediğinizde veya sildiğinizde otomatik olarak sunucuya senkronize edilir. Yeniden başlatma gerekmez.
  • Derlemelere dahil ediliryarn twenty build, tüm genel varlıkları dağıtım çıktısına paketler.

getPublicAssetUrl ile genel varlıklara erişme

twenty-sdk içindeki getPublicAssetUrl yardımcı işlevini kullanarak public/ dizininizdeki bir dosyanın tam URL’sini alın. Hem mantık işlevlerinde hem de ön uç bileşenlerinde çalışır. Bir mantık işlevinde:
src/logic-functions/send-invoice.ts
Bir ön uç bileşeninde:
src/front-components/company-card.tsx
path bağımsız değişkeni, uygulamanızın public/ klasörüne göre görelidir. Hem getPublicAssetUrl('logo.png') hem de getPublicAssetUrl('public/logo.png') aynı URL’ye çözümlenir — public/ öneki varsa otomatik olarak kaldırılır.

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ında node_modules gerekmez.

Bir paketi yükleme

Ardından kodunuza içe aktarın:
src/logic-functions/fetch-data.ts
Aynısı ön uç bileşenleri için de geçerlidir:
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.

Uygulamanızı test etme

SDK, test kodundan uygulamanızı derlemenize, dağıtmanıza, yüklemenize ve kaldırmanıza olanak tanıyan programatik API’ler sağlar. Tiplenmiş API istemcileriyle birlikte Vitest kullanarak, uygulamanızın gerçek bir Twenty sunucusunda uçtan uca çalıştığını doğrulayan entegrasyon testleri yazabilirsiniz.

Kurulum

İskelet aracıyla oluşturulan uygulama zaten Vitest’i içerir. Manuel kurulum yaparsanız, bağımlılıkları yükleyin:
Uygulamanızın kök dizininde bir vitest.config.ts oluşturun:
vitest.config.ts
Testler çalışmadan önce sunucuya erişilebildiğini doğrulayan bir kurulum dosyası oluşturun:
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: Her fonksiyon, 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:
Veya geliştirme sırasında izleme modunda:

Tip denetimi

Ayrıca testleri çalıştırmadan uygulamanızda tip denetimi çalıştırabilirsiniz:
Bu, tsc --noEmit komutunu çalıştırır ve tüm tip hatalarını raporlar.

CLI başvurusu

dev, build, add ve typecheck dışında CLI, fonksiyonları çalıştırma, günlükleri görüntüleme ve uygulama kurulumlarını yönetme komutları sağlar.

Fonksiyonları çalıştırma (yarn twenty exec)

Bir mantık fonksiyonunu HTTP, cron veya veritabanı olayıyla tetiklemeden manuel olarak çalıştırın:

Fonksiyon günlüklerini görüntüleme (yarn twenty logs)

Uygulamanızın mantık fonksiyonlarının yürütme günlüklerini akış olarak alın:
Bu, Docker konteyner günlüklerini gösteren yarn twenty server logs komutundan farklıdır. yarn twenty logs, uygulamanızın fonksiyon yürütme günlüklerini Twenty sunucusundan gösterir.

Bir uygulamayı kaldırma (yarn twenty uninstall)

Uygulamanızı etkin çalışma alanından kaldırın:

Uzakları yönetme

Bir uzak, uygulamanızın bağlandığı Twenty sunucusudur. Kurulum sırasında iskelet oluşturucu sizin için otomatik olarak bir tane oluşturur. Dilediğiniz zaman daha fazla uzak ekleyebilir veya aralarında geçiş yapabilirsiniz.
Kimlik bilgileriniz ~/.twenty/config.json içinde saklanır.

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ışı:
  1. Kodunuzu çalışma alanına alır
  2. twentyhq/twenty/.github/actions/spawn-twenty-docker-image eylemini kullanarak geçici bir Twenty sunucusu başlatır
  3. yarn install --immutable ile bağımlılıkları kurar
  4. Eylem çıktılarından enjekte edilen TWENTY_API_URL ve TWENTY_API_KEY ile yarn test çalıştırır
.github/workflows/ci.yml
Herhangi bir gizli değişken yapılandırmanız gerekmez — 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.