attranslate
Version:
Text Translator for Websites and Apps
61 lines (60 loc) • 2.76 kB
JavaScript
;
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 = {
agent: null,
openai: null,
typechat: null,
"typechat-manual": null,
manual: null,
"sync-without-translate": null,
"google-translate": null,
// deepl: null,
azure: null,
"key-as-translation": 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 "agent":
return new (await Promise.resolve().then(() => __importStar(require("./agent-translate")))).AgentTranslation();
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();
case "key-as-translation":
return new (await Promise.resolve().then(() => __importStar(require("./key-as-translation")))).KeyAsTranslation();
}
}
exports.instantiateTService = instantiateTService;