summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/notes/translate.ts
diff options
context:
space:
mode:
authortamaina <tamaina@hotmail.co.jp>2023-01-12 21:03:02 +0900
committerGitHub <noreply@github.com>2023-01-12 21:03:02 +0900
commit978a9bbb3beafb7322aaf81d097430de6dbf527e (patch)
tree9f14ca1c7f9c1ccffe08a215bc06c19729bccbf6 /packages/backend/src/server/api/endpoints/notes/translate.ts
parentRole (#9437) (diff)
downloadsharkey-978a9bbb3beafb7322aaf81d097430de6dbf527e.tar.gz
sharkey-978a9bbb3beafb7322aaf81d097430de6dbf527e.tar.bz2
sharkey-978a9bbb3beafb7322aaf81d097430de6dbf527e.zip
perf(backend): Use undici instead of node-fetch and got (#9459)
* Implement? HttpFetchService * :v: * remove node-fetch * fix * refactor * fix * gateway timeout * UndiciFetcherクラスを追加 (仮コミット, ビルドもstartもさせていない) * fix * add logger and fix url preview * fix ip check * enhance logger and error handling * fix * fix * clean up * Use custom fetcher for ApRequest / ApResolver * bypassProxyはproxyBypassHostsに判断を委譲するように * set maxRedirections (default 3, ApRequest/ApResolver: 0) * fix comment * handle error s3 upload * add debug message * no return await * Revert "no return await" This reverts commit b5b0dc58a342393d260492e3a6f58304372f53b2. * reduce maxSockets * apResolverのUndiciFetcherを廃止しapRequestのものを使う、 add ap logger * Revert "apResolverのUndiciFetcherを廃止しapRequestのものを使う、 add ap logger" This reverts commit 997243915c8e1f8472da64f607f88c36cb1d5cb4. * add logger * fix * change logger name * safe * デフォルトでUser-Agentを設定
Diffstat (limited to 'packages/backend/src/server/api/endpoints/notes/translate.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/notes/translate.ts35
1 files changed, 18 insertions, 17 deletions
diff --git a/packages/backend/src/server/api/endpoints/notes/translate.ts b/packages/backend/src/server/api/endpoints/notes/translate.ts
index ec16965998..ab19771676 100644
--- a/packages/backend/src/server/api/endpoints/notes/translate.ts
+++ b/packages/backend/src/server/api/endpoints/notes/translate.ts
@@ -1,5 +1,4 @@
import { URLSearchParams } from 'node:url';
-import fetch from 'node-fetch';
import { Inject, Injectable } from '@nestjs/common';
import type { NotesRepository } from '@/models/index.js';
import { Endpoint } from '@/server/api/endpoint-base.js';
@@ -84,25 +83,27 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
const endpoint = instance.deeplIsPro ? 'https://api.deepl.com/v2/translate' : 'https://api-free.deepl.com/v2/translate';
- const res = await fetch(endpoint, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'User-Agent': config.userAgent,
- Accept: 'application/json, */*',
+ const res = await this.httpRequestService.fetch(
+ endpoint,
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ Accept: 'application/json, */*',
+ },
+ body: params.toString(),
},
- body: params,
- // TODO
- //timeout: 10000,
- agent: (url) => this.httpRequestService.getAgentByUrl(url),
- });
+ {
+ noOkError: false,
+ }
+ );
const json = (await res.json()) as {
- translations: {
- detected_source_language: string;
- text: string;
- }[];
- };
+ translations: {
+ detected_source_language: string;
+ text: string;
+ }[];
+ };
return {
sourceLang: json.translations[0].detected_source_language,