Lingara Lingara بەڵگەنامەکان ڕێنماییەکان API کتێبخانەکان ئەپەکان دروستکردن ئەپی وێب
زمان: سۆرانی

TypeScript

ئەم پەڕەیە لە ئینگلیزییەوە وەرگێڕدراوە. ئەگەر هەردووکیان جیاواز بوون، پەڕە ئینگلیزییەکە ڕاستە. پەڕە ئینگلیزییەکە بخوێنەوە

کتێبخانەی TypeScript پاکێجی @lingara/apiـە لەسەر npm. لەسەر Node.js 22 یان نوێتر کار دەکات، هیچ پشتبەستنێکی کاتی کارکردنی نییە، و پێناسەی جۆری بۆ هەموو داواکاری، وەڵام و ڕووداوێکی ستریم لەگەڵدایە.

لە کوێ کار دەکات

کتێبخانەیەکی لای سێرڤەرە. هیچ وەشانێکی وێبگەڕ نییە، و کلاینتەکە نهێنی کلاینت ڕەت دەکاتەوە کاتێک خۆی لەناو پەڕەیەکدا دەبینێتەوە: نهێنی کلاینت لە وێبگەڕدا نهێنییەکی بڵاوکراوەیە، هەر کەسێک پەڕەکە بکاتەوە دەتوانێت بیخوێنێتەوە. API لە سێرڤەرەکەی خۆتەوە بانگ بکە و تەنها ئەوەی بەکارهێنەرەکانت پێویستیانە بۆیان بنێرە.

لە کرداردا چۆنە

  • هەموو بانگکردنێک Promise دەگەڕێنێتەوە. بۆ هەڵوەشاندنەوەی یەکێکیان { signal } لەگەڵ AbortSignalـێک تێپەڕێنە؛ ئەوکات بانگکردنەکە بە هۆکاری خودی سیگناڵەکە ڕەت دەکرێتەوە.
  • ستریمێک دووبارەکراوەیەکی ناهاوکاتە، بە for await دەخوێندرێتەوە. تەمەڵە: داواکارییەکە کاتێک دەنێردرێت کە داوای یەکەم ڕووداو دەکەیت.
  • هەڵەکان لە LingaraError میرات دەگرن، بۆیە یەک پشکنینی instanceof هەر چواریان دەگرێت. هەر یەکەیان retryAfter هەڵدەگرێت کاتێک API ماوەی چاوەڕوانی دیاری کردبێت.
  • بۆ بەکارهێنانی کۆمەڵەی HTTPـی خۆت، فەنکشنێکی fetch لە هەڵبژاردەکاندا تێپەڕێنە. ماوەی بێکاری ستریمەکان هێشتا جێبەجێ دەبێت.

نموونەکانی خوارەوە پاکێجەکە دادەمەزرێنن، کلاینتێک دروست دەکەن، لیستێکی وشەسازی ستریم دەکەن و هەڵەیەک چارەسەر دەکەن.

TypeScript

npm install @lingara/api@0.1.0-alpha.6

TypeScript

import { Lingara } from "@lingara/api";

const client = new Lingara({
  clientId: process.env.LINGARA_CLIENT_ID!,
  clientSecret: process.env.LINGARA_CLIENT_SECRET!,
});

TypeScript

const stream = client.generateVocabulary({ level: 2, source_lang: "en", target_lang: "zh", count: 8 });
for await (const ev of stream) {
  if (ev.event === "item") console.log(ev.data.word, ev.data.translation);
}

TypeScript

import { ApiError, MaintenanceError, OAuthError, TransportError } from "@lingara/api";

try {
  await client.getUsage();
} catch (e) {
  if (e instanceof ApiError) {
    // A refusal from the API: e.status, e.code (stable) and e.message (localised).
    console.error(e.status, e.code, e.message, e.retryAfter ?? "");
  } else if (e instanceof OAuthError) {
    // The token endpoint refused the credentials or the scopes.
    console.error(e.status, e.error, e.description ?? "");
  } else if (e instanceof MaintenanceError) {
    console.error("under maintenance; retry after", e.retryAfter ?? "a while");
  } else if (e instanceof TransportError) {
    // No usable answer: connect, tls, reset, timeout, and so on.
    console.error("transport:", e.kind);
  } else {
    throw e;
  }
}

ئەم پەڕەیە چی دەپێچێتەوە