|
|
|
@ -153,6 +153,12 @@ const tmdbHeaders = {
@@ -153,6 +153,12 @@ const tmdbHeaders = {
|
|
|
|
|
Authorization: `Bearer ${apiKey}`, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
function abortOnTimeout(timeout: number): AbortSignal { |
|
|
|
|
const controller = new AbortController(); |
|
|
|
|
setTimeout(() => controller.abort(), timeout); |
|
|
|
|
return controller.signal; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
async function get<T>(url: string, params?: object): Promise<T> { |
|
|
|
|
if (!apiKey) throw new Error("TMDB API key not set"); |
|
|
|
|
try { |
|
|
|
@ -162,7 +168,7 @@ async function get<T>(url: string, params?: object): Promise<T> {
@@ -162,7 +168,7 @@ async function get<T>(url: string, params?: object): Promise<T> {
|
|
|
|
|
params: { |
|
|
|
|
...params, |
|
|
|
|
}, |
|
|
|
|
signal: AbortSignal.timeout(5000), |
|
|
|
|
signal: abortOnTimeout(5000), |
|
|
|
|
}); |
|
|
|
|
} catch (err) { |
|
|
|
|
return mwFetch<T>(encodeURI(url), { |
|
|
|
@ -171,7 +177,7 @@ async function get<T>(url: string, params?: object): Promise<T> {
@@ -171,7 +177,7 @@ async function get<T>(url: string, params?: object): Promise<T> {
|
|
|
|
|
params: { |
|
|
|
|
...params, |
|
|
|
|
}, |
|
|
|
|
signal: AbortSignal.timeout(30000), |
|
|
|
|
signal: abortOnTimeout(30000), |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|