TypeScript SDK

عميل مُنمَّط بالكامل لـ Node.js وDeno وBun وبيئات edge.

التثبيت

npm install kalimalab

تهيئة العميل

import KalimaLab from 'kalimalab'const client = new KalimaLab({  apiKey: process.env.KALIMALAB_API_KEY,})
عيّن KALIMALAB_API_KEY في بيئتك. لا تُضمّن مفاتيح API في الكود مباشرةً.

الطرق

client.words.get

جلب التفاصيل اللغوية الكاملة لكلمة واحدة بواسطة slug الخاص بها.

Try it
client.words.get(slug: string): Promise<Word>
ParamTypeReqDescription
slugstringYesslug الكلمة أو معرّفها (من نتائج البحث)

Returns: Promise<Word>

const word = await client.words.get('كتب')console.log(word.meaning_en)  // 'to write'console.log(word.root)        // 'كتب'
client.words.daily

احصل على كلمة اليوم.

Try it
client.words.daily(): Promise<Word>

Returns: Promise<Word>

const word = await client.words.daily()console.log(word.word)       // 'الأَمَل'console.log(word.meaning_en) // 'hope'
client.words.random

احصل على كلمات عربية مختارة عشوائياً.

Try it
client.words.random(params?: { count?: number }): Promise<Word[]>
ParamTypeReqDescription
countnumberNo1-20 كلمة. الافتراضي: 1.

Returns: Promise<Word[]>

const words = await client.words.random({ count: 5 })words.forEach(w => console.log(w.word))
client.words.validate

تحقق من وجود سلاسل عربية في قاعدة بيانات كلمات.

Try it
client.words.validate(words: string[]): Promise<ValidationResult>
ParamTypeReqDescription
wordsstring[]Yesحتى 100 كلمة عربية للتحقق منها

Returns: Promise<{ valid: string[], invalid: string[], count: { valid: number, invalid: number } }>

const result = await client.words.validate(['كتب', 'xyz123', 'مدرسة'])console.log(result.valid)   // ['كتب', 'مدرسة']console.log(result.invalid) // ['xyz123']
client.text.analyze

حلّل مقطعاً من النص العربي.

Try it
client.text.analyze(text: string): Promise<TextAnalysis>
ParamTypeReqDescription
textstringYesنص عربي للتحليل (حد أقصى 5,000 حرف)

Returns: Promise<TextAnalysis> — { wordCount, letterCount, uniqueWords, frequency }

const analysis = await client.text.analyze('بسم الله الرحمن الرحيم')console.log(analysis.wordCount)   // 4
client.stats.get

أعد إحصاءات قاعدة البيانات.

Try it
client.stats.get(): Promise<Stats>

Returns: Promise<{ totalWords: number, totalRoots: number, totalPatterns: number }>

const stats = await client.stats.get()console.log(stats.totalWords) // 477000

معالجة الأخطاء

import KalimaLab, { KalimaLabError } from 'kalimalab'try {  const result = await client.words.search({ q: 'كتب' })} catch (err) {  if (err instanceof KalimaLabError) {    console.error(err.status)  // 401, 429, 500    console.error(err.code)    // 'unauthorized' | 'rate_limited' | ...    console.error(err.message)  }}

أنواع TypeScript

import type {  Word,  SearchResult,  TextAnalysis,  ValidationResult,  Stats,  KalimaLabError,} from 'kalimalab'