refactor: improve error handling for custom player

This commit is contained in:
Kentai Radiquum 2025-03-22 21:04:31 +05:00
parent fc8fe97da7
commit f94b551cdf
Signed by: Radiquum
GPG key ID: 858E8EE696525EED
2 changed files with 328 additions and 187 deletions

View file

@ -27,6 +27,46 @@ export async function tryCatch<T, E = Error>(
}
}
export async function tryCatchPlayer<T, E = Error>(
promise: Promise<any>
): Promise<Result<any, any>> {
try {
const res: Awaited<Response> = await promise;
const data = await res.json();
if (!res.ok) {
if (data.message) {
return {
data: null,
error: {
message: data.message,
code: res.status,
},
};
} else if (data.detail) {
return {
data: null,
error: {
message: data.detail,
code: res.status,
},
};
} else {
return {
data: null,
error: {
message: res.statusText,
code: res.status,
},
};
}
}
return { data, error: null };
} catch (error) {
return { data: null, error: error as E };
}
}
export async function tryCatchAPI<T, E = Error>(
promise: Promise<any>
): Promise<Result<any, any>> {