Update package layout

This commit is contained in:
2026-03-16 23:36:38 -04:00
parent b345982ab1
commit 8fe121951b
24 changed files with 383 additions and 39 deletions

View File

@@ -0,0 +1,52 @@
interface TokenResponse {
token: string | null | undefined;
}
interface TokenBody {
token: string;
iat: number;
exp: number;
}
export interface LoginBody {
login: string;
password: string;
}
export interface TokenData {
accessToken: string | null | undefined;
issued: number;
expires: number;
}
export const defaultTokenData: TokenData = {
accessToken: "",
issued: 0,
expires: 0
}
export async function fetchToken(apiUrl: string){
const res = await fetch(`${apiUrl}/refresh`);
return await res.json() as TokenResponse;
}
export function parseToken(rawToken: string | null | undefined): TokenData {
if(!rawToken){
return defaultTokenData;
}
const payloads = rawToken.split(".");
if(payloads.length !== 3){
return defaultTokenData;
}
const payload = payloads[1];
const tokenBody = JSON.parse(atob(payload)) as TokenBody;
return ({
accessToken: rawToken,
issued: tokenBody.iat * 1000,
expires: tokenBody.exp * 1000
});
}