UNPKG

anylang

Version:

A translator's kit that uses the free APIs of Google Translate, Yandex, Bing, ChatGPT, and other LLMs

67 lines (65 loc) 7.21 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/require-await */ import { BaseTranslator } from './BaseTranslator'; /** * Fake translator for use in tests and debug */ export class FakeTranslator extends BaseTranslator { static isSupportedAutoFrom() { return false; } static getSupportedLanguages() { return ['ru', 'en', 'de', 'ja']; } getLengthLimit() { return 3000; } getRequestsTimeout() { return 10; } checkDirection(from, to) { return from == 'ru' && to == 'ja' ? false : true; } translate(text, from, to) { const delay = this.options.delay === undefined ? 0 : this.options.delay === 'random' ? Math.floor(Math.random() * 1000) : this.options.delay; return new Promise((resolve) => { setTimeout(() => { resolve(`*[${from}-${to}]` + text); }, delay); }); } translateBatch(text, from, to) { return Promise.all(text.map((i) => this.translate(i, from, to).catch(() => null))); } } FakeTranslator.translatorName = 'FakeTranslator'; /** * Fake translator which always throw error for use in tests and debug */ export class ErrorFakeTranslator extends FakeTranslator { translate(_text, _from, _to) { return __awaiter(this, void 0, void 0, function* () { throw new Error('Fake error for translate method'); }); } translateBatch(_text, _from, _to) { return __awaiter(this, void 0, void 0, function* () { throw new Error('Fake error for translateBatch method'); }); } } ErrorFakeTranslator.translatorName = 'FakeTranslator'; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyYW5zbGF0b3JzL0Zha2VUcmFuc2xhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDJDQUEyQztBQUMzQyxxREFBcUQ7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxjQUVsQztJQUdNLE1BQU0sQ0FBQyxtQkFBbUI7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQjtRQUNsQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLGNBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRU0sa0JBQWtCO1FBQ3hCLE9BQU8sRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFZLEVBQUUsRUFBVTtRQUM3QyxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQVU7UUFDdEQsTUFBTSxLQUFLLEdBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRO2dCQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3BDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFjLEVBQUUsSUFBWSxFQUFFLEVBQVU7UUFDN0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzlELENBQUM7SUFDSCxDQUFDOztBQXhDc0IsNkJBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQTJDMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQUd6QyxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQWEsRUFBRSxHQUFXOztZQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztLQUFBO0lBRVksY0FBYyxDQUMxQixLQUFlLEVBQ2YsS0FBYSxFQUNiLEdBQVc7O1lBRVgsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3pELENBQUM7S0FBQTs7QUFac0Isa0NBQWMsR0FBRyxnQkFBZ0IsQ0FBQyIsImZpbGUiOiJ0cmFuc2xhdG9ycy9GYWtlVHJhbnNsYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0ICovXG5pbXBvcnQgeyBCYXNlVHJhbnNsYXRvciB9IGZyb20gJy4vQmFzZVRyYW5zbGF0b3InO1xuXG4vKipcbiAqIEZha2UgdHJhbnNsYXRvciBmb3IgdXNlIGluIHRlc3RzIGFuZCBkZWJ1Z1xuICovXG5leHBvcnQgY2xhc3MgRmFrZVRyYW5zbGF0b3IgZXh0ZW5kcyBCYXNlVHJhbnNsYXRvcjx7XG5cdGRlbGF5PzogbnVtYmVyIHwgJ3JhbmRvbSc7XG59PiB7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHJhbnNsYXRvck5hbWUgPSAnRmFrZVRyYW5zbGF0b3InO1xuXG5cdHB1YmxpYyBzdGF0aWMgaXNTdXBwb3J0ZWRBdXRvRnJvbSgpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGdldFN1cHBvcnRlZExhbmd1YWdlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFsncnUnLCAnZW4nLCAnZGUnLCAnamEnXTtcblx0fVxuXG5cdHB1YmxpYyBnZXRMZW5ndGhMaW1pdCgpIHtcblx0XHRyZXR1cm4gMzAwMDtcblx0fVxuXG5cdHB1YmxpYyBnZXRSZXF1ZXN0c1RpbWVvdXQoKSB7XG5cdFx0cmV0dXJuIDEwO1xuXHR9XG5cblx0cHVibGljIGNoZWNrRGlyZWN0aW9uKGZyb206IHN0cmluZywgdG86IHN0cmluZykge1xuXHRcdHJldHVybiBmcm9tID09ICdydScgJiYgdG8gPT0gJ2phJyA/IGZhbHNlIDogdHJ1ZTtcblx0fVxuXG5cdHB1YmxpYyB0cmFuc2xhdGUodGV4dDogc3RyaW5nLCBmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpIHtcblx0XHRjb25zdCBkZWxheSA9XG5cdFx0XHR0aGlzLm9wdGlvbnMuZGVsYXkgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IDBcblx0XHRcdFx0OiB0aGlzLm9wdGlvbnMuZGVsYXkgPT09ICdyYW5kb20nXG5cdFx0XHRcdFx0PyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwKVxuXHRcdFx0XHRcdDogdGhpcy5vcHRpb25zLmRlbGF5O1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlKSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0cmVzb2x2ZShgKlske2Zyb219LSR7dG99XWAgKyB0ZXh0KTtcblx0XHRcdH0sIGRlbGF5KTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyB0cmFuc2xhdGVCYXRjaCh0ZXh0OiBzdHJpbmdbXSwgZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKFxuXHRcdFx0dGV4dC5tYXAoKGkpID0+IHRoaXMudHJhbnNsYXRlKGksIGZyb20sIHRvKS5jYXRjaCgoKSA9PiBudWxsKSksXG5cdFx0KTtcblx0fVxufVxuXG4vKipcbiAqIEZha2UgdHJhbnNsYXRvciB3aGljaCBhbHdheXMgdGhyb3cgZXJyb3IgZm9yIHVzZSBpbiB0ZXN0cyBhbmQgZGVidWdcbiAqL1xuZXhwb3J0IGNsYXNzIEVycm9yRmFrZVRyYW5zbGF0b3IgZXh0ZW5kcyBGYWtlVHJhbnNsYXRvciB7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHJhbnNsYXRvck5hbWUgPSAnRmFrZVRyYW5zbGF0b3InO1xuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2xhdGUoX3RleHQ6IHN0cmluZywgX2Zyb206IHN0cmluZywgX3RvOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdHRocm93IG5ldyBFcnJvcignRmFrZSBlcnJvciBmb3IgdHJhbnNsYXRlIG1ldGhvZCcpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHRyYW5zbGF0ZUJhdGNoKFxuXHRcdF90ZXh0OiBzdHJpbmdbXSxcblx0XHRfZnJvbTogc3RyaW5nLFxuXHRcdF90bzogc3RyaW5nLFxuXHQpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdGYWtlIGVycm9yIGZvciB0cmFuc2xhdGVCYXRjaCBtZXRob2QnKTtcblx0fVxufVxuIl19