UNPKG

@technoeren/tdk-api

Version:
69 lines (49 loc) 1.68 kB
import axios from "axios"; import { InvalidWord, ValueNotFound } from "../errors/tdk-errors"; import { IGetWord, ProVerbsResponse, WordMean } from '../types'; export class TDKAPI { constructor() {} public async getWord(word: string): Promise<IGetWord> { if (word.trim().length < 1) throw new InvalidWord(); let response = await axios.get( `https://sozluk.gov.tr/gts?ara=${encodeURI(word)}` ); if (response.data.error) throw new ValueNotFound(); let anlamlar: WordMean[] = []; for (const element of response.data[0].anlamlarListe) { anlamlar.push({ anlam: element.anlam, ornek: element.orneklerListe ? element.orneklerListe[0].ornek : null, }); } return { anlamlar, atasozu_deyim: response.data[0].atasozu ? response.data[0].atasozu[0].madde : null, }; } public async isExistWord(word: string): Promise<boolean> { if (word.trim().length < 1) throw new InvalidWord(); let response = await axios.get( `https://sozluk.gov.tr/gts?ara=${encodeURI(word)}` ); return response.data.length > 0 ? true : false; } public async getProVerbs(value: string): Promise<any> { if (value.trim().length < 1) throw new InvalidWord(); let response = await axios.get( `https://sozluk.gov.tr/atasozu?ara=${encodeURI(value)}` ); if (response.data.error) throw new ValueNotFound(); let proverbs: ProVerbsResponse[] = []; for (const element of response.data) { proverbs.push({ soz: element.sozum, tur: element.turu2, anlam: element.anlami, }); } return {proverbs}; } }