mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-07-27 16:49:51 -07:00
test(tokenizer): add golden-file regression corpus with 11 fixtures (#157)
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
const DEFAULT_YOMITAN_API_TIMEOUT_MS = 10_000;
|
||||
|
||||
export async function fetchYomitanApi(
|
||||
input: RequestInfo | URL,
|
||||
init?: RequestInit,
|
||||
timeoutMs = DEFAULT_YOMITAN_API_TIMEOUT_MS,
|
||||
): Promise<Response> {
|
||||
const controller = new AbortController();
|
||||
const requestSignal = input instanceof Request ? input.signal : undefined;
|
||||
const signals = [controller.signal, init?.signal, requestSignal].filter(
|
||||
(signal): signal is AbortSignal => signal != null,
|
||||
);
|
||||
const signal = signals.length === 1 ? controller.signal : AbortSignal.any(signals);
|
||||
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
||||
|
||||
try {
|
||||
return await fetch(input, { ...init, signal });
|
||||
} catch (error) {
|
||||
if (controller.signal.aborted) {
|
||||
throw new Error(`Yomitan API request timed out after ${timeoutMs}ms`, { cause: error });
|
||||
}
|
||||
throw error;
|
||||
} finally {
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user