UNPKG

libretranslate

Version:
45 lines 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.translate = void 0; const translate = async ({ query, source, target, format, apiurl, apiKey }) => { if (!apiurl && !apiKey) throw new TypeError("You need an API key to use the public LibreTranslate API!"); if (!apiurl) apiurl = "https://libretranslate.com"; if (!source) source = "auto"; let availableLanguages = []; availableLanguages.push("auto"); const res1 = await fetch(`${apiurl}/languages`, { method: "GET", headers: { "Content-Type": "application/json" } }); const languages = await res1.json(); languages.forEach(language => { availableLanguages.push(language.code); }); if (!availableLanguages.includes(source)) throw new TypeError("This language was not found/does not exist."); if (!availableLanguages.includes(target)) throw new TypeError("This language was not found/does not exist."); const res2 = await fetch(`${apiurl}/translate`, { method: "POST", body: JSON.stringify({ q: query, source: source, target: target, format: format || "text", apiKey: apiKey || "", }), headers: { "Content-Type": "application/json" } }); try { let t = await res2.json(); return t.translatedText; } catch (err) { throw err; } }; exports.translate = translate; //# sourceMappingURL=translate.js.map