UNPKG

attranslate

Version:

Semi-automated Text Translator for Websites and Apps

55 lines (54 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.instantiateTService = exports.injectFakeService = exports.getTServiceList = void 0; const util_1 = require("../util/util"); function getTServiceList() { return Object.keys(serviceMap); } exports.getTServiceList = getTServiceList; const serviceMap = { openai: null, typechat: null, "typechat-manual": null, manual: null, "sync-without-translate": null, "google-translate": null, // deepl: null, azure: null, }; function injectFakeService(serviceName, service) { fakeServiceMap[serviceName] = service; } exports.injectFakeService = injectFakeService; const fakeServiceMap = {}; async function instantiateTService(service) { const fakeService = fakeServiceMap[service]; if (fakeService) { return fakeService; } /** * To gain a reasonable launch-performance, we import services dynamically. * This is especially important for google-translate, which uses a huge bunch of packages. */ switch (service) { case "openai": return new (await Promise.resolve().then(() => __importStar(require("./openai-translate")))).OpenAITranslate(); case "typechat": (0, util_1.nodeVersionSatisfies)("typechat", ">=18"); return new (await Promise.resolve().then(() => __importStar(require("./typechat")))).TypeChatTranslate(); case "typechat-manual": (0, util_1.nodeVersionSatisfies)("typechat", ">=18"); return new (await Promise.resolve().then(() => __importStar(require("./typechat")))).TypeChatTranslate(true); case "azure": return new (await Promise.resolve().then(() => __importStar(require("./azure-translator")))).AzureTranslator(); // case "deepl": // return new (await import("./deepl")).DeepL(); case "google-translate": return new (await Promise.resolve().then(() => __importStar(require("./google-translate")))).GoogleTranslate(); case "manual": return new (await Promise.resolve().then(() => __importStar(require("./manual")))).ManualTranslation(); case "sync-without-translate": return new (await Promise.resolve().then(() => __importStar(require("./sync-without-translate")))).SyncWithoutTranslate(); } } exports.instantiateTService = instantiateTService;