provide api error detection function

This commit is contained in:
syuilo 2021-05-16 12:59:52 +09:00
parent c7d5da4ec5
commit 1bd75619dd

View File

@ -1,5 +1,7 @@
import { Endpoints } from './endpoints';
const MK_API_ERROR = Symbol();
export type APIError = {
id: string;
code: string;
@ -8,6 +10,10 @@ export type APIError = {
info: Record<string, any>;
};
export function isAPIError(reason: any): reason is APIError {
return reason[MK_API_ERROR] === true;
}
export function request<E extends keyof Endpoints>(
origin: string,
endpoint: E,
@ -32,7 +38,10 @@ export function request<E extends keyof Endpoints>(
} else if (res.status === 204) {
resolve(null);
} else {
reject(body.error);
reject({
[MK_API_ERROR]: true,
...body.error
});
}
}).catch(reject);
});