Markdown editor in progress + Login and session process completed

This commit is contained in:
2024-08-19 16:27:09 +02:00
parent aba56bb034
commit 2e92c389a2
74 changed files with 1305 additions and 313 deletions

View File

@@ -1,3 +1,19 @@
export interface SuccessHandler
{
success: true;
session: UserSession;
}
export interface ErrorHandler
{
success: false;
error: Error | ZodError<{
username: string;
email: string;
password: string;
}>;
}
export type Return = SuccessHandler | ErrorHandler;
export interface Project {
id: number;
name: string;

71
types/auth.d.ts vendored Normal file
View File

@@ -0,0 +1,71 @@
import type { ComputedRef, Ref } from 'vue'
import 'vue-router';
declare module 'vue-router'
{
interface RouteMeta
{
requiresAuth?: boolean;
guestsGoesTo?: string;
usersGoesTo?: string;
}
}
import 'nuxt';
declare module 'nuxt'
{
interface RuntimeConfig
{
session: SessionConfig;
}
}
export interface UserRawData {
id: number;
username: string;
email: string;
state: number;
}
export interface UserExtendedData {
}
export type User = UserRawData & UserExtendedData;
export interface UserSession {
user?: User;
id?: string;
}
export interface UserSessionRequired extends UserSession {
user: User;
id: string;
}
export interface UserSessionComposable {
/**
* Computed indicating if the auth session is ready
*/
ready: ComputedRef<boolean>
/**
* Computed indicating if the user is logged in.
*/
loggedIn: ComputedRef<boolean>
/**
* The user object if logged in, null otherwise.
*/
user: ComputedRef<User | null>
/**
* The session object.
*/
session: Ref<UserSession>
/**
* Fetch the user session from the server.
*/
fetch: () => Promise<void>
/**
* Clear the user session and remove the session cookie.
*/
clear: () => Promise<void>
}

View File