SquidSpirit 365c979878
Some checks failed
Frontend CI / build (push) Failing after 58s
feat: implement authentication and user management features
2025-10-13 10:48:50 +08:00

34 lines
782 B
TypeScript

import { UserViewModel, type DehydratedUserProps } from '$lib/auth/adapter/presenter/userViewModel';
export class AuthViewModel {
readonly user: UserViewModel | null;
constructor(params: { user: UserViewModel | null }) {
this.user = params.user;
}
static fromEntity(user: UserViewModel | null): AuthViewModel {
return new AuthViewModel({ user });
}
static rehydrate(props: DehydratedAuthProps): AuthViewModel {
return new AuthViewModel({
user: props.user ? UserViewModel.rehydrate(props.user) : null,
});
}
dehydrate(): DehydratedAuthProps {
return {
user: this.user ? this.user.dehydrate() : null,
};
}
get isAuthenticated(): boolean {
return this.user !== null;
}
}
export interface DehydratedAuthProps {
user: DehydratedUserProps | null;
}