Use vanilla AbortController for compat

This commit is contained in:
William Oldham 2024-04-15 20:10:44 +01:00
parent 3c4d84db5c
commit a9d80ddf24

View file

@ -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> {
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> {
params: {
...params,
},
signal: AbortSignal.timeout(30000),
signal: abortOnTimeout(30000),
});
}
}