0.1.6•Updated a month ago
import { MemCache } from "@infinity-beyond/utils/memcache.ts";
import { DracoRequest, HOST } from "@infinity-beyond/modules/security/draco/draco_request.ts";
import { DracoUser } from "@infinity-beyond/modules/security/draco/draco_user.ts";
const user_cache = new MemCache<DracoUser>();
export const GetDracoUser = async (cookie_uuid: string, force: boolean = false): Promise<DracoUser | null> => {
if(!force) {
const cached_user = user_cache.get(cookie_uuid);
if(cached_user) return cached_user;
}
const { user: user_data } = (await DracoRequest<{ user: Draco.UserInterface }>('refresh-token', { cookie_uuid })) ?? {};
if(!user_data) return null;
if(user_data?.image_path?.indexOf('/') == 0) {
user_data.image_path = HOST.replace(/\/+$/, '') + user_data.image_path;
}
const user = new DracoUser(user_data);
user_cache.set(cookie_uuid, user);
return user;
}