feat: create translatorMiddleware

This commit is contained in:
P. Reis 2024-10-07 15:00:46 -03:00
parent a2d8478e1a
commit 8e58b1a7d4

View file

@ -0,0 +1,33 @@
import { AppMiddleware } from '@/app.ts';
import { Conf } from '@/config.ts';
import { fetchWorker } from '@/workers/fetch.ts';
import { DeepLTranslator } from '@/translators/DeepLTranslator.ts';
import { LibreTranslateTranslator } from '@/translators/LibreTranslateTranslator.ts';
/** Set the translator used for translating posts. */
export const translatorMiddleware: AppMiddleware = async (c, next) => {
const endpoint = Conf.translationProviderEndpoint;
const apiKey = Conf.translationProviderApiKey;
const translationProvider = Conf.translationProvider;
switch (translationProvider) {
case 'DeepL'.toLowerCase():
if (apiKey) {
c.set(
'translator',
new DeepLTranslator({ endpoint, apiKey, fetch: fetchWorker }),
);
}
break;
case 'Libretranslate'.toLowerCase():
if (apiKey) {
c.set(
'translator',
new LibreTranslateTranslator({ endpoint, apiKey, fetch: fetchWorker }),
);
}
break;
}
await next();
};