mirror of
https://github.com/zhigang1992/now-deployment.git
synced 2026-06-19 10:08:31 +08:00
29 lines
595 B
TypeScript
29 lines
595 B
TypeScript
import Client from './client';
|
|
import { User } from '../types';
|
|
import { APIError, InvalidToken, MissingUser } from './errors-ts';
|
|
|
|
let user: User | undefined;
|
|
|
|
export default async function getUser(client: Client) {
|
|
if (user) return user;
|
|
|
|
try {
|
|
const res = await client.fetch<{ user: User }>('/www/user', {
|
|
useCurrentTeam: false,
|
|
});
|
|
|
|
if (!res.user) {
|
|
throw new MissingUser();
|
|
}
|
|
|
|
user = res.user;
|
|
return user;
|
|
} catch (error) {
|
|
if (error instanceof APIError && error.status === 403) {
|
|
throw new InvalidToken();
|
|
}
|
|
|
|
throw error;
|
|
}
|
|
}
|