arml
Version:
Enjoy unlimited and free translation with our API.
2 lines • 2.14 kB
JavaScript
import h from"axios";var c="https://api.translate.arml.trymagic.xyz/v1";var p=a=>{let{status:r,data:t}=a;throw r===401?new Error(`Unauthorized: ${t.detail?.msg||"Invalid API key."}`):r===400?new Error(`Bad Request: ${t.detail?.msg||"You may have sent an incorrect or missing value."}`):r===403?new Error("Forbidden: Access is denied."):r===500?new Error("Server error: Please try again later."):r===404?new Error("Not Found: The requested resource could not be found."):new Error(`Unexpected error: ${t.detail?.msg||"An unknown error occurred."}`)};var m=h.create({baseURL:c,headers:{"Content-Type":"application/json"}}),o=async(a,r,t)=>{try{let e=await m.post(a,r,{params:t});if(e.status===200)return e.data}catch(e){if(e.response)p(e.response);else throw new Error("An unknown error occurred")}return null};var u=async(a,r,t,e="auto",n=3)=>{let s="/translate",i={api_key:a,text:r,source:e,target:t,retry_count:n.toString()};return await o(s,{},i)},d=async(a,r,t,e="auto",n=3)=>{let s="/batch_translate",i={texts:r,source:e,target:t,retry_count:n.toString()};return await o(s,i,{api_key:a})},T=async(a,r)=>await o("/detect",{},{text:r,api_key:a});var l=class a{apiKey;constructor(r){if(!r)throw new Error("API key is required to create a Translate instance.");this.apiKey=r}async translate(r,{source:t="auto",target:e="en"}){if(!r||!e)throw new Error("Both text and target language are required.");try{return await u(this.apiKey,r,e,t)}catch(n){return console.error("Translation API error:",n),null}}async batchTranslate(r,{source:t="auto",target:e="en"}){if(!r||!e)throw new Error("Both texts and target language are required.");try{return await d(this.apiKey,r,e,t)}catch(n){return console.error("Translation API error:",n),null}}async detect(r){if(!r)throw new Error("Text is required to detect language.");try{return await T(this.apiKey,r)}catch(t){return console.error("Translation API error:",t),null}}static async quick({text:r,apiKey:t,options:e}){try{return(await new a(t).translate(r,e))?.translated_text}catch(n){console.error("Quick translation error:",n);return}}},g=l;export{g as Translator};
//# sourceMappingURL=index.mjs.map