# @trkit-app-pack/format

> TL, İstanbul saatiyle tarih, göreli zaman, tutarı yazıya çevirme, ünlü uyumlu hâl ekleri ve Türkçe harf dönüşümü.

```bash
npm install @trkit-app-pack/format
```

Bağımlılığı yoktur; sunucuda, tarayıcıda ve Edge'de çalışır.

## Para

Tutarları **kuruş cinsinden tamsayı** olarak tutun.

```ts
tl(129950);                          // "1.299,50 ₺"
tl(100000, { kurus: "auto" });       // "1.000 ₺"
tl(5, { sembol: "TL" });             // "0,05 TL"
tlFromLira(1299.5);                  // "1.299,50 ₺"
tlParse("1.299,50 ₺");               // 129950
sayi(1234567.891);                   // "1.234.567,89"
yuzde(0.18);                         // "%18"
kdvHesapla(12000, 0.2);              // { net: 10000, kdv: 2000, toplam: 12000 }
```

## Tarih

Sunucular (Vercel vb.) UTC çalışır. Gece yarısından sonra verilen bir sipariş, `toLocaleDateString()` ile bir önceki günün tarihiyle görünür. trkit'in tarih fonksiyonları her zaman `Europe/Istanbul` saat dilimini kullanır.

```ts
const d = "2026-11-06T22:30:00Z";     // İstanbul'da 7 Kasım 01:30
tarih(d);                             // "7 Kasım 2026"
tarih(d, "kisa");                     // "07.11.2026"
tarih(d, "orta");                     // "7 Kas 2026"
tarih(d, "tam");                      // "7 Kasım 2026 Cumartesi"
tarihSaat(d);                         // "7 Kasım 2026 01:30"
saat(d);                              // "01:30"
isoGun(d);                            // "2026-11-07"
goreli(Date.now() - 5 * 60_000);      // "5 dakika önce"
goreli(dun);                          // "dün"
```

`AYLAR` ve `GUNLER` dizileri de dışa aktarılır.

> Statik sayfalarda `new Date()` derleme anında sabitlenir. Güncel tarih göstermek için sayfayı dinamik yapın veya tarihi istemcide biçimlendirin.

## Tutarı yazıya çevirme

Fatura, makbuz, senet ve sözleşmeler için:

```ts
sayiyiYaziyaCevir(1234);                         // "bin iki yüz otuz dört"
sayiyiYaziyaCevir(1_000_000);                    // "bir milyon"
tutariYaziyaCevir(123456);                       // "bin iki yüz otuz dört Türk lirası elli altı kuruş"
tutariYaziyaCevir(123456, { bitisik: true, yalniz: true });
// "Yalnız #BinİkiYüzOtuzDörtTL,ElliAltıKr#"
```

## Hâl ekleri

Özel isimlere ünlü uyumu ve ünsüz benzeşmesine uygun ek getirir:

```ts
hal("İstanbul", "yonelme");   // "İstanbul'a"
hal("Ankara", "belirtme");    // "Ankara'yı"
hal("Sinop", "bulunma");      // "Sinop'ta"
hal("Kadıköy", "ayrilma");    // "Kadıköy'den"
hal("Ayşe", "tamlayan");      // "Ayşe'nin"
hal("Ali", "vasita");         // "Ali'yle"
hal("34", "yonelme");         // "34'e"
hal("A.Ş.", "tamlayan", { okunus: "aşe" }); // "A.Ş.'nin"
ek("Ankara", "yonelme");      // "ya" (kesme işareti olmadan)
cogul("kitap");               // "kitaplar"
```

Kullanım: `${hal(sehir, "yonelme")} kargo 2 gün sürer`, `${hal(ad, "tamlayan")} siparişi`.

Kısaltmalar okunuşa göre ek aldığından `okunus` parametresini verin.

## Metin

```ts
buyukHarf("istanbul");                  // "İSTANBUL"
kucukHarf("IĞDIR");                     // "ığdır"
basHarfleriBuyut("AYŞE  yılmaz");       // "Ayşe Yılmaz"
cumleBasi("İSTANBUL GÜZEL");            // "İstanbul güzel"
adSoyadAyir("ali ihsan yılmaz");        // { ad: "Ali İhsan", soyad: "Yılmaz" }
kisalt("Merhaba dünya nasılsın", 15);   // "Merhaba dünya…"
```
