JSFiddle - React, Tailwind, and code Playground

by evgkch

Babel + JSX

function request(path, params) {;
  const method = params.method || 'GET';
  let qs = '';
  let body;
  const headers = params.headers || {
    'Accept': 'application/json',
    'Content-Type': 'application/json; charset=UTF-8',
  };

  if (['GET', 'DELETE'].indexOf(method) > -1)
    qs = '?' + getQueryString(params.data);
  else // POST or PUT
    body = JSON.stringify(params.data);

  return fetch(path + qs, { method, headers, body })
    .then(response => response.json())
    .catch(e => {console.error(e); return e;});
}

class MultitranAPI {


    langs = new Map([
    	['en', ['English', 1]],
      ['de', ['German', 3]],
      ['fr', ['French', 4]],
			['es', ['Spain', 5]],
      ['it', ['Italian', 23]],
      ['nl', ['Dutch', 24]],
      ['lv', ['Latvian', 27]],
      ['et', ['Estonian', 26]],
      ['ja', ['Japanese', 28]],
      ['af', ['African', 31]],
      ['eo', ['Esperanto', 34]],
      ['xal', ['Kalmyk', 35]],
    ])

    getLanguages() {
		//	return dict(map(lambda x: (x[0], x[1][0]), self.langs.items()))
    }
    async translate(word, lang = 1) {
     const page = `http://www.multitran.ru/c/m.exe?CL=1&s=${lang}&l1=${word}`;
     console.log(await request(page, { method: 'POST' }))
     /*    page = yield getPage(page)
        translation = ''
        html = etree.HTML(page)
        trs = html.xpath('//form[@id="translation"]/../table[2]/tr')
        for tr in trs:
            tds = tr.xpath('td')
            for td in tds:
                for elem in td.xpath('descendant::text()'):
                    translation += '%s' % elem.rstrip('\r\n')
            translation += '\n'
        returnValue(translation) */
     }
}

const a = new MultitranAPI;
a.translate('test')