UNPKG

anylang

Version:

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

39 lines (37 loc) 6.28 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()); }); }; import { basicFetcher } from '../utils/fetcher/basicFetcher'; // TODO: remove it and provide utils to implement translators /** * Basic abstract class for translator */ export class BaseTranslator { constructor(options) { this.options = {}; this.fetch = (url, options) => __awaiter(this, void 0, void 0, function* () { var _a; const fetcher = (_a = this.options.fetcher) !== null && _a !== void 0 ? _a : basicFetcher; return fetcher(url, options); }); if (options !== undefined) { this.options = options; } } checkLimitExceeding(text) { const plainText = Array.isArray(text) ? text.join('') : text; const extra = plainText.length - this.getLengthLimit(); return extra > 0 ? extra : 0; } } BaseTranslator.translatorName = 'UnknownTranslator'; BaseTranslator.isRequiredKey = () => false; BaseTranslator.isSupportedAutoFrom = () => false; BaseTranslator.getSupportedLanguages = () => []; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyYW5zbGF0b3JzL0Jhc2VUcmFuc2xhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQW1DN0QsNkRBQTZEO0FBQzdEOztHQUVHO0FBRUgsTUFBTSxPQUFnQixjQUFjO0lBZ0JuQyxZQUFZLE9BQThCO1FBRHZCLFlBQU8sR0FBRyxFQUEwQixDQUFDO1FBeUI5QyxVQUFLLEdBQVksQ0FDMUIsR0FBVyxFQUNYLE9BQTBCLEVBQ3pCLEVBQUU7O1lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sbUNBQUksWUFBWSxDQUFDO1lBQ3JELE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUEsQ0FBQztRQTdCRCxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QixDQUFDO0lBQ0YsQ0FBQztJQWNNLG1CQUFtQixDQUFDLElBQXVCO1FBQ2pELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM3RCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2RCxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7O0FBbkNzQiw2QkFBYyxHQUFXLG1CQUFYLEFBQThCLENBQUM7QUFFdEQsNEJBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFULEFBQWMsQ0FBQztBQUU1QixrQ0FBbUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFULEFBQWMsQ0FBQztBQUVsQyxvQ0FBcUIsR0FBRyxHQUFhLEVBQUUsQ0FBQyxFQUFuQixBQUFxQixDQUFDIiwiZmlsZSI6InRyYW5zbGF0b3JzL0Jhc2VUcmFuc2xhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzaWNGZXRjaGVyIH0gZnJvbSAnLi4vdXRpbHMvZmV0Y2hlci9iYXNpY0ZldGNoZXInO1xuaW1wb3J0IHsgRmV0Y2hlciwgRmV0Y2hlck9wdGlvbnMsIEZldGNoZXJSZXF1ZXN0VHlwZSB9IGZyb20gJy4uL3V0aWxzL2ZldGNoZXIvdHlwZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRvckluc3RhbmNlTWVtYmVycyB9IGZyb20gJy4vVHJhbnNsYXRvcic7XG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0b3JPcHRpb25zPE8gZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9PiA9IE8gJiB7XG5cdC8qKlxuXHQgKiBBUEkgZW5kcG9pbnQgVVJMXG5cdCAqL1xuXHRhcGlIb3N0Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBBY2Nlc3Mga2V5IGZvciByZXF1ZXN0cyB0byB0cmFuc2xhdG9yIEFQSVxuXHQgKi9cblx0YXBpS2V5Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBVbmlvbiB0ZXh0IGFycmF5IHRvIDEgcmVxdWVzdCAob3IgbW9yZSwgYnV0IGxlc3MgdGhhbiB1c3VhbHkgYW55d2F5KS5cblx0ICpcblx0ICogT3B0aW9uIGZvciByZWR1Y2UgdGhlIG51bWJlciBvZiByZXF1ZXN0cywgYnV0IGl0IGNhbiBtYWtlIGFydGVmYWN0cyBpbiB0cmFuc2xhdGVkIHRleHQuXG5cdCAqXG5cdCAqIFNvbWUgbW9kdWxlcyBtYXkgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLlxuXHQgKi9cblx0dXNlTXVsdGlwbGV4aW5nPzogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBoZWFkZXJzIGZvciByZXF1ZXN0c1xuXHQgKi9cblx0aGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cblx0LyoqXG5cdCAqIEN1c3RvbSBmZXRjaGVyXG5cdCAqL1xuXHRmZXRjaGVyPzogRmV0Y2hlcjtcbn07XG5cbi8vIFRPRE86IHJlbW92ZSBpdCBhbmQgcHJvdmlkZSB1dGlscyB0byBpbXBsZW1lbnQgdHJhbnNsYXRvcnNcbi8qKlxuICogQmFzaWMgYWJzdHJhY3QgY2xhc3MgZm9yIHRyYW5zbGF0b3JcbiAqL1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVRyYW5zbGF0b3I8QyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30+XG5cdGltcGxlbWVudHMgVHJhbnNsYXRvckluc3RhbmNlTWVtYmVyc1xue1xuXHRwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHRyYW5zbGF0b3JOYW1lOiBzdHJpbmcgPSAnVW5rbm93blRyYW5zbGF0b3InO1xuXG5cdHB1YmxpYyBzdGF0aWMgaXNSZXF1aXJlZEtleSA9ICgpID0+IGZhbHNlO1xuXG5cdHB1YmxpYyBzdGF0aWMgaXNTdXBwb3J0ZWRBdXRvRnJvbSA9ICgpID0+IGZhbHNlO1xuXG5cdHB1YmxpYyBzdGF0aWMgZ2V0U3VwcG9ydGVkTGFuZ3VhZ2VzID0gKCk6IHN0cmluZ1tdID0+IFtdO1xuXG5cdHB1YmxpYyBhYnN0cmFjdCBnZXRMZW5ndGhMaW1pdCgpOiBudW1iZXI7XG5cblx0cHVibGljIGFic3RyYWN0IGdldFJlcXVlc3RzVGltZW91dCgpOiBudW1iZXI7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSB7fSBhcyBUcmFuc2xhdG9yT3B0aW9uczxDPjtcblx0Y29uc3RydWN0b3Iob3B0aW9ucz86IFRyYW5zbGF0b3JPcHRpb25zPEM+KSB7XG5cdFx0aWYgKG9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpcy5vcHRpb25zID0gb3B0aW9ucztcblx0XHR9XG5cdH1cblxuXHRhYnN0cmFjdCB0cmFuc2xhdGUoXG5cdFx0dGV4dDogc3RyaW5nLFxuXHRcdHNvdXJjZUxhbmd1YWdlOiBzdHJpbmcsXG5cdFx0dGFyZ2V0TGFuZ3VhZ2U6IHN0cmluZyxcblx0KTogUHJvbWlzZTxzdHJpbmc+O1xuXG5cdGFic3RyYWN0IHRyYW5zbGF0ZUJhdGNoKFxuXHRcdHRleHQ6IHN0cmluZ1tdLFxuXHRcdHNvdXJjZUxhbmd1YWdlOiBzdHJpbmcsXG5cdFx0dGFyZ2V0TGFuZ3VhZ2U6IHN0cmluZyxcblx0KTogUHJvbWlzZTwoc3RyaW5nIHwgbnVsbClbXT47XG5cblx0cHVibGljIGNoZWNrTGltaXRFeGNlZWRpbmcodGV4dDogc3RyaW5nIHwgc3RyaW5nW10pIHtcblx0XHRjb25zdCBwbGFpblRleHQgPSBBcnJheS5pc0FycmF5KHRleHQpID8gdGV4dC5qb2luKCcnKSA6IHRleHQ7XG5cdFx0Y29uc3QgZXh0cmEgPSBwbGFpblRleHQubGVuZ3RoIC0gdGhpcy5nZXRMZW5ndGhMaW1pdCgpO1xuXHRcdHJldHVybiBleHRyYSA+IDAgPyBleHRyYSA6IDA7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZmV0Y2g6IEZldGNoZXIgPSBhc3luYyA8VCBleHRlbmRzIEZldGNoZXJSZXF1ZXN0VHlwZT4oXG5cdFx0dXJsOiBzdHJpbmcsXG5cdFx0b3B0aW9uczogRmV0Y2hlck9wdGlvbnM8VD4sXG5cdCkgPT4ge1xuXHRcdGNvbnN0IGZldGNoZXIgPSB0aGlzLm9wdGlvbnMuZmV0Y2hlciA/PyBiYXNpY0ZldGNoZXI7XG5cdFx0cmV0dXJuIGZldGNoZXIodXJsLCBvcHRpb25zKTtcblx0fTtcbn1cbiJdfQ==