tdk-api-wrapper 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -6
- package/dist/chunk-2TA5PMVZ.mjs +741 -0
- package/dist/cli.js +683 -85
- package/dist/cli.mjs +222 -37
- package/dist/index.d.mts +173 -5
- package/dist/index.d.ts +173 -5
- package/dist/index.js +471 -52
- package/dist/index.mjs +9 -3
- package/package.json +1 -1
- package/src/cli.ts +227 -36
- package/src/errors.ts +38 -0
- package/src/index.ts +1 -0
- package/src/tdk.ts +449 -61
- package/src/types.ts +36 -0
- package/dist/chunk-MGSXCUAX.mjs +0 -325
package/README.md
CHANGED
|
@@ -7,11 +7,11 @@ Bu proje, Türk Dil Kurumu (TDK) sözlük verilerine Node.js ortamından doğrud
|
|
|
7
7
|
Projeyi Node.js projenize dahil etmek için aşağıdaki paket yöneticilerinden uygun olanı kullanabilirsiniz:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install tdk-api
|
|
10
|
+
npm install tdk-api-wrapper
|
|
11
11
|
```
|
|
12
12
|
veya global yükleyerek komut satırı aracını (CLI) kullanmak için:
|
|
13
13
|
```bash
|
|
14
|
-
npm install -g tdk-api
|
|
14
|
+
npm install -g tdk-api-wrapper
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## Komut Satırı Arayüzü (CLI) Kullanımı
|
|
@@ -25,6 +25,23 @@ tdk koken lisan
|
|
|
25
25
|
tdk hece muvaffakiyet
|
|
26
26
|
tdk uyum elma
|
|
27
27
|
tdk yazim herkes
|
|
28
|
+
tdk gunun
|
|
29
|
+
tdk rastgele
|
|
30
|
+
tdk esanlam güzel
|
|
31
|
+
tdk karsit kötü
|
|
32
|
+
tdk yabanci kalem
|
|
33
|
+
tdk kurallar
|
|
34
|
+
tdk kural kısaltmalar
|
|
35
|
+
tdk karsilastir kalem kağıt
|
|
36
|
+
tdk analiz "Bu güzel kalem masanın üstünde duruyor"
|
|
37
|
+
tdk oneri kale
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Herhangi bir komuta `--json` bayrağı eklendiğinde çıktı, insan-okunur metin yerine tek satırlık JSON olarak basılır (script/otomasyon kullanımı için):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
tdk ara kalem --json
|
|
44
|
+
# ["Yazma, çizme vb. işlerde kullanılan çeşitli biçimlerde araç", ...]
|
|
28
45
|
```
|
|
29
46
|
|
|
30
47
|
## Kullanım Başlangıcı
|
|
@@ -51,18 +68,48 @@ Aşağıdaki metotlar `TDK` sınıfı üzerinden statik olarak erişilebilir dur
|
|
|
51
68
|
- **`TDK.syllabicate(word)`**: Kelimeyi Türkçe heceleme kurallarına göre doğru hecelerine ayırır (Örn: `['mu', 'vaf', 'fa', 'ki', 'yet']`). API isteği atmaz, çok hızlıdır.
|
|
52
69
|
- **`TDK.checkVowelHarmony(word)`**: Kelimenin büyük ünlü uyumuna uyup uymadığını (boolean) kontrol eder.
|
|
53
70
|
- **`TDK.getPartOfSpeech(word)`**: Kelimenin sözcük türünü (isim, sıfat, zarf vb.) döndürür.
|
|
54
|
-
- **`TDK.checkSpelling(word)`**: Sıkça yapılan yanlışlar listesini ve TDK veritabanını kullanarak kelimenin doğru yazılıp yazılmadığını kontrol eder. Yanlışsa doğrusunu önerir.
|
|
71
|
+
- **`TDK.checkSpelling(word)`**: Sıkça yapılan yanlışlar listesini ve TDK veritabanını kullanarak kelimenin doğru yazılıp yazılmadığını kontrol eder. Yanlışsa doğrusunu önerir; tam eşleşme yoksa, aynı listedeki kelimeler arasında edit-distance (Levenshtein) ile en yakınını önerir (not: tüm sözlükte değil, yalnızca bu küçük havuzda arama yapar).
|
|
55
72
|
- **`TDK.getCompoundWords(word)`**: Aranan kelime ile oluşturulmuş birleşik kelimeleri (Örn: dolma kalem) listeler.
|
|
56
73
|
|
|
57
74
|
### 3. Edebi ve Kültürel Analiz
|
|
58
75
|
- **`TDK.getExamples(word)`**: Ünlü yazarlardan edebi örnek cümleleri ve yazar isimlerini liste halinde döner.
|
|
59
|
-
- **`TDK.getOrigin(word)`**: Kelimenin hangi dilden geldiğini (etimolojik lisan kökenini) döner.
|
|
76
|
+
- **`TDK.getOrigin(word)`**: Kelimenin hangi dilden geldiğini (etimolojik lisan kökenini) döner; kelime hiç bulunamazsa `null` döner, bulunup köken kaydı yoksa `"Türkçe"` döner.
|
|
60
77
|
- **`TDK.getProverbs(word)`**: Yalnızca aranan kelimenin geçtiği atasözü ve deyimleri dizi olarak getirir.
|
|
78
|
+
- **`TDK.isForeignWord(word)`**: Kelimenin yabancı kökenli olup olmadığını `boolean` olarak döner; kelime bulunamazsa `null` döner.
|
|
79
|
+
- **`TDK.groupByOrigin(words)`**: Bir kelime listesini etimolojik kökenlerine göre gruplar (bulunamayanlar `"Bilinmiyor"` altında toplanır).
|
|
80
|
+
- **`TDK.getSynonyms(word)`** / **`TDK.getAntonyms(word)`**: Kelimenin eş/zıt anlamlılarını döner (undocumented `gts-yeni` endpoint'i üzerinden; sonuç bulunamazsa `[]`).
|
|
81
|
+
- **`TDK.compareWords(a, b)`**: İki kelimeyi anlam sayısı, köken, hece bölünüşü ve büyük ünlü uyumu açısından yan yana karşılaştırır.
|
|
82
|
+
- **`TDK.analyzeText(text)`**: Bir metindeki (Türkçe bağlaçlar/edatlar hariç) her benzersiz kelimeyi tek tek arayıp ilk anlamını ve kökenini döner.
|
|
61
83
|
|
|
62
84
|
### 4. Yardımcı Metotlar
|
|
63
|
-
- **`TDK.getSuggestions(prefix)`**:
|
|
64
|
-
- **`TDK.getAudioUrl(word)`**:
|
|
85
|
+
- **`TDK.getSuggestions(prefix)`**: TDK'nin ~81 bin kelimelik tam madde listesi üzerinden önek bazlı otomatik tamamlama önerileri döner (ilk çağrıda listeyi indirip önbelleğe alır, sonraki çağrılar anlıktır).
|
|
86
|
+
- **`TDK.getAudioUrl(word)`**: TDK'nin bu kelime için gerçekten bir ses kaydı varsa doğrudan indirme URL'sini döner, yoksa `null`. `downloadAudio(word, destPath)` ile cihazınıza indirebilirsiniz.
|
|
65
87
|
- **`TDK.getDailyContent()`**: TDK anasayfasında yer alan "Günün Kelimesi, Atasözü ve Kuralı" içeriklerini çeker.
|
|
88
|
+
- **`TDK.getWordOfTheDay()`**: `getDailyContent()`'in üzerine ince bir katman; günün kelimesini ve tüm anlamlarını `{ word, meanings }` şeklinde döner.
|
|
89
|
+
- **`TDK.getRandomWord()`**: Günün içeriğindeki kelime ve atasözü havuzundan rastgele bir tanesini `{ type: "kelime" | "atasoz", madde, anlam }` şeklinde seçer (not: tüm sözlük değil, sadece o günkü içerik havuzundan seçim yapar).
|
|
90
|
+
- **`TDK.getKurallar()`**: TDK'nin `/icerik` akışının o an döndürdüğü yazım kuralı sayfa(lar)ını `{ adi, url }` şeklinde listeler. Not: bu sabit bir katalog değildir — `/icerik` her istekte, yaklaşık yirmi kurallık bir havuzdan rastgele tek bir kural döndürür.
|
|
91
|
+
- **`TDK.getRule(name)`**: Adı verilen (küçük/büyük harf duyarsız, alt dize eşleşmesi) yazım kuralının tam metnini `tdk.gov.tr`'den çekip düz metne çevirir. `getKurallar()`'ın rastgeleliği yüzünden istenen kuralı bulana kadar sınırlı sayıda (en fazla 25, aralarda kısa bekleme ile) yeniden dener; bulamazsa veya sayfa ayrıştırılamazsa `null` döner.
|
|
92
|
+
|
|
93
|
+
## Hata Yönetimi
|
|
94
|
+
|
|
95
|
+
Kütüphane, ayırt edilebilir hata sınıfları fırlatır (hepsi `Error`'dan türer):
|
|
96
|
+
|
|
97
|
+
- **`TDKValidationError`**: Boş kelime gibi geçersiz bir parametre verildiğinde.
|
|
98
|
+
- **`TDKNetworkError`**: Ağ isteği başarısız olduğunda, TDK sunucusu HTTP hata kodu döndüğünde veya cevap JSON olarak parse edilemediğinde (`status` ve `cause` alanlarını taşır).
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
import { TDK, TDKValidationError, TDKNetworkError } from 'tdk-api';
|
|
102
|
+
|
|
103
|
+
try {
|
|
104
|
+
await TDK.getWord('');
|
|
105
|
+
} catch (e) {
|
|
106
|
+
if (e instanceof TDKValidationError) {
|
|
107
|
+
console.log('Geçersiz girdi:', e.message);
|
|
108
|
+
} else if (e instanceof TDKNetworkError) {
|
|
109
|
+
console.log('Ağ hatası:', e.message, e.status);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
66
113
|
|
|
67
114
|
## Lisans
|
|
68
115
|
|