Lingara Lingara لارښود لارښودونه API کتابتونونه اپلیکیشنونه جوړول ویب اپلیکیشن
ژبه: پښتو

TypeScript

دا پاڼه له انګلیسي ژبې ژباړل شوې ده. که دواړه سره توپیر ولري، انګلیسي پاڼه سمه ده. انګلیسي پاڼه ولولئ

د TypeScript کتابتون په npm کې د @lingara/api کڅوړه ده. دا په 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;
  }
}

دا پاڼه څه رانغاړي