Files
AFFiNE-Mirror/packages/data-center/src/datacenter/provider/affine/request.ts
2023-01-03 13:42:54 +08:00

46 lines
1.1 KiB
TypeScript

import kyOrigin from 'ky';
import ky from 'ky-universal';
import { token } from './token.js';
export const bareClient = ky.extend({
prefixUrl: 'http://localhost:8080',
retry: 1,
hooks: {
// afterResponse: [
// async (_request, _options, response) => {
// if (response.status === 200) {
// const data = await response.json();
// if (data.error) {
// return new Response(data.error.message, {
// status: data.error.code,
// });
// }
// }
// return response;
// },
// ],
},
});
export const client = bareClient.extend({
hooks: {
beforeRequest: [
async request => {
if (token.isLogin) {
if (token.isExpired) await token.refreshToken();
request.headers.set('Authorization', token.token);
} else {
return new Response('Unauthorized', { status: 401 });
}
},
],
beforeRetry: [
async ({ request }) => {
await token.refreshToken();
request.headers.set('Authorization', token.token);
},
],
},
});