UNPKG

arabize

Version:

Node.js API wrapper for Yamli's Latin to Arabic transliteration engine

29 lines (24 loc) 791 B
import axios from 'axios'; import * as constants from './constants.js'; import * as utils from './utils.js'; const arabize = async text => { if (utils.isNotValidText(text)) throw new Error(constants.ERROR_MESSAGES.invalidText); let results = []; try { results = await Promise.all( utils.splitTokens(text).map(token => axios.get(utils.constructFullYamliEndpoint(token))) ); } catch (err) { throw new Error(constants.ERROR_MESSAGES.transliterationApiError); } return results.map(result => { const data = result.data; const transliteratedToken = data.r?.split('|')?.[0]?.split('/')?.[0] || ''; return transliteratedToken === '' ? (constants.DEFAULT_CHARS[data.w] || data.w) : transliteratedToken; }).join(' '); } export { arabize }